
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--navy:#061b45;--blue:#0b3479;--cyan:#079ab5;--gold:#d8a83d;--paper:#f6f4ef;--ink:#07142d;--white:#fff;--muted:#8e98aa;--line:rgba(255,255,255,.14);--ease:cubic-bezier(.2,.8,.2,1);--shadow:0 35px 100px rgba(0,0,0,.32)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:#031027}body{margin:0;font-family:'Manrope','DM Sans',Arial,sans-serif;background:#031027;color:#fff;overflow-x:hidden}body.modal-open{overflow:hidden}a{text-decoration:none;color:inherit}button{font:inherit}img{display:block;max-width:100%}.container{width:min(1260px,calc(100% - 52px));margin:auto}.noise{position:fixed;inset:0;z-index:1000;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.ambient{position:fixed;inset:0;z-index:-3;width:100%;height:100%;background:radial-gradient(circle at 80% 0%,rgba(7,154,181,.15),transparent 35%),radial-gradient(circle at 10% 65%,rgba(216,168,61,.1),transparent 28%),#031027}.cursor,.cursor-dot{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;z-index:1100;transform:translate(-50%,-50%);display:none}.cursor{width:38px;height:38px;border:1px solid rgba(255,255,255,.55);transition:width .2s,height .2s,background .2s,border-color .2s}.cursor-dot{width:5px;height:5px;background:var(--gold)}.cursor.active{width:64px;height:64px;background:rgba(7,154,181,.12);border-color:var(--cyan)}
.preloader{position:fixed;inset:0;z-index:2000;background:#031027;display:grid;place-items:center;transition:opacity .7s var(--ease),visibility .7s}.preloader.done{opacity:0;visibility:hidden}.preloader-inner{text-align:center}.preloader img{width:170px;height:auto;filter:drop-shadow(0 12px 28px rgba(0,0,0,.35));animation:logoPulse 1.5s var(--ease) infinite alternate}.loader-line{height:1px;width:220px;background:rgba(255,255,255,.15);margin:30px auto 0;overflow:hidden}.loader-line i{display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--gold),var(--cyan));animation:load 1.2s infinite var(--ease)}@keyframes load{from{transform:translateX(-120%)}to{transform:translateX(350%)}}@keyframes logoPulse{to{transform:translateY(-8px);filter:drop-shadow(0 20px 45px rgba(7,154,181,.35))}}
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:18px 0;transition:.35s var(--ease)}.site-header.scrolled{padding:9px 0;background:rgba(3,16,39,.76);backdrop-filter:blur(22px);border-bottom:1px solid rgba(255,255,255,.08)}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:54px;height:42px;object-fit:contain}.brand-text{font-size:.82rem;line-height:1.1;font-weight:800;letter-spacing:.14em}.brand-text small{display:block;color:var(--cyan);font-size:.55rem;letter-spacing:.22em;margin-top:4px}.nav-links{display:flex;align-items:center;gap:26px;font-size:.82rem;font-weight:700}.nav-links>a{color:#dbe2ef;transition:.25s}.nav-links>a:hover{color:white}.nav-cta{padding:12px 18px;border:1px solid rgba(255,255,255,.22);border-radius:999px}.menu-toggle{display:none;width:44px;height:44px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:transparent;color:white}
.hero{min-height:100svh;display:flex;align-items:center;position:relative;padding:140px 0 70px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.hero-copy{position:relative;z-index:3}.eyebrow{display:flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:800;color:#b9c4d6}.eyebrow:before{content:"";width:42px;height:2px;background:linear-gradient(90deg,var(--gold),var(--cyan))}.hero h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(4rem,8vw,8.2rem);font-weight:500;line-height:.88;letter-spacing:-.055em;margin:24px 0 28px}.hero h1 em{font-weight:500;color:transparent;-webkit-text-stroke:1.5px #fff;text-shadow:0 0 55px rgba(7,154,181,.25)}.hero-lead{max-width:660px;color:#adb9cb;font-size:1.1rem;line-height:1.75}.hero-lead strong{color:white}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.btn{min-height:54px;padding:0 24px;border-radius:999px;border:1px solid rgba(255,255,255,.2);display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:.86rem;transition:.3s var(--ease)}.btn.primary{background:linear-gradient(110deg,var(--blue),var(--cyan));border-color:transparent;box-shadow:0 18px 45px rgba(7,154,181,.24)}.btn:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(0,0,0,.25)}.hero-meta{display:flex;gap:32px;margin-top:45px}.hero-meta div{border-left:1px solid rgba(255,255,255,.18);padding-left:15px}.hero-meta strong{display:block;font-size:1.1rem}.hero-meta span{display:block;font-size:.72rem;color:#8896ab;text-transform:uppercase;letter-spacing:.12em;margin-top:4px}.hero-visual{height:690px;position:relative;perspective:1500px}.portrait-wrap{position:absolute;width:68%;height:88%;left:17%;bottom:0;border-radius:320px 320px 40px 40px;overflow:hidden;z-index:2;box-shadow:0 40px 120px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.15);background:linear-gradient(180deg,rgba(7,154,181,.16),rgba(6,27,69,.92))}.portrait-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,16,39,.75));pointer-events:none}.portrait-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 15%;transform:scale(1.03)}.hero-orbit{position:absolute;inset:7% 0 0;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:rotate(-13deg);animation:orbitSpin 18s linear infinite}.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:var(--gold);box-shadow:0 0 25px var(--gold)}.hero-orbit:before{top:15%;left:9%}.hero-orbit:after{bottom:12%;right:8%;background:var(--cyan);box-shadow:0 0 25px var(--cyan)}@keyframes orbitSpin{to{transform:rotate(347deg)}}.floating-sheet{position:absolute;width:210px;aspect-ratio:.77;background:#fff;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);z-index:4;border:1px solid rgba(255,255,255,.5)}.floating-sheet img{width:100%;height:100%;object-fit:cover}.sheet-one{right:-1%;top:11%;transform:rotate(10deg);animation:floatOne 6s ease-in-out infinite}.sheet-two{left:-5%;bottom:11%;width:180px;transform:rotate(-12deg);animation:floatTwo 7s ease-in-out infinite}.sheet-three{right:3%;bottom:5%;width:150px;transform:rotate(7deg);animation:floatThree 5.5s ease-in-out infinite}@keyframes floatOne{50%{transform:translateY(-18px) rotate(6deg) rotateY(-9deg)}}@keyframes floatTwo{50%{transform:translateY(15px) rotate(-7deg) rotateY(10deg)}}@keyframes floatThree{50%{transform:translate(-6px,-13px) rotate(12deg)}}.hero-badge{position:absolute;left:0;top:12%;z-index:6;width:130px;height:130px;border-radius:50%;display:grid;place-items:center;text-align:center;background:rgba(3,16,39,.76);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.18);font-size:.68rem;line-height:1.4;text-transform:uppercase;letter-spacing:.12em;animation:badgeRotate 18s linear infinite}@keyframes badgeRotate{to{transform:rotate(360deg)}}
.marquee{overflow:hidden;border-top:1px solid rgba(255,255,255,.09);border-bottom:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025)}.marquee-track{display:flex;width:max-content;animation:marquee 26s linear infinite;padding:18px 0}.marquee span{display:flex;align-items:center;gap:28px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:#9aa8bc;padding-right:28px}.marquee span:after{content:'✦';color:var(--gold)}@keyframes marquee{to{transform:translateX(-50%)}}
.section{padding:120px 0}.section-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:end;margin-bottom:64px}.section-kicker{color:var(--cyan);font-weight:800;font-size:.75rem;letter-spacing:.17em;text-transform:uppercase}.section h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(3rem,6vw,6.2rem);line-height:.95;letter-spacing:-.05em;margin:14px 0}.section-intro{font-size:1.08rem;line-height:1.8;color:#9ca9bc;max-width:630px}.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}.filter-btn{border:1px solid rgba(255,255,255,.14);background:transparent;color:#9da9ba;padding:10px 16px;border-radius:999px;font-size:.76rem;font-weight:800;cursor:pointer;transition:.25s}.filter-btn.active,.filter-btn:hover{background:#fff;color:var(--ink)}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 28px}.project-card{min-width:0;transition:opacity .35s,transform .35s}.project-card.hidden{display:none}.project-open{width:100%;padding:0;border:0;background:transparent;color:white;text-align:left;cursor:pointer}.project-stage{height:580px;position:relative;border-radius:30px;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 58%,#07142d),#07142d 72%);perspective:1600px;transform-style:preserve-3d;box-shadow:0 28px 70px rgba(0,0,0,.22);isolation:isolate}.project-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,70%) var(--my,20%),rgba(255,255,255,.24),transparent 28%);opacity:.55;transition:.2s;z-index:0}.project-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(1,9,24,.55));z-index:6;pointer-events:none}.project-glow{position:absolute;width:420px;height:420px;border-radius:50%;background:var(--accent);filter:blur(90px);opacity:.24;right:-100px;top:-100px;z-index:0}.page-object{position:absolute;top:9%;left:50%;height:77%;max-width:63%;aspect-ratio:.75;transform-style:preserve-3d;transform-origin:center;transition:transform .65s var(--ease),filter .65s var(--ease),opacity .65s;box-shadow:0 30px 80px rgba(0,0,0,.42);border-radius:7px;overflow:hidden;background:white}.page-object img{width:100%;height:100%;object-fit:contain;background:#fff}.page-cover{z-index:4;transform:translateX(-50%) rotateY(-10deg) rotateZ(-2deg)}.page-mid{z-index:3;transform:translateX(-35%) translateY(22px) rotateY(-6deg) rotateZ(7deg);filter:brightness(.88)}.page-back{z-index:2;transform:translateX(-66%) translateY(30px) rotateY(9deg) rotateZ(-9deg);filter:brightness(.72)}.project-index{position:absolute;left:27px;top:24px;font-size:.72rem;font-weight:800;letter-spacing:.18em;color:rgba(255,255,255,.66);z-index:8}.open-cue{position:absolute;right:24px;bottom:22px;display:flex;align-items:center;gap:10px;z-index:8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em}.open-cue b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);font-size:1.1rem;transition:.3s}.project-card:hover .open-cue b{background:#fff;color:var(--ink);transform:rotate(45deg)}.project-copy{padding:24px 5px 0}.project-line{display:flex;justify-content:space-between;color:#7f8da3;text-transform:uppercase;letter-spacing:.13em;font-size:.68rem;font-weight:800}.project-copy h3{font-family:'Playfair Display',Georgia,serif;font-size:2.15rem;font-weight:500;line-height:1.1;margin:13px 0 10px}.project-copy p{color:#9ca9bb;line-height:1.75;margin:0;max-width:670px}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.tag-row span{font-size:.68rem;font-weight:800;padding:7px 10px;border:1px solid rgba(255,255,255,.11);border-radius:999px;color:#b6c0ce}
/* unique project movements */
.effect-orbit:hover .page-cover{transform:translateX(-50%) rotateY(11deg) rotateZ(2deg) translateZ(70px)}.effect-orbit:hover .page-mid{transform:translateX(3%) translateY(5px) rotateY(-25deg) rotateZ(15deg) translateZ(10px)}.effect-orbit:hover .page-back{transform:translateX(-98%) translateY(4px) rotateY(25deg) rotateZ(-15deg)}
.effect-accordion .page-cover{transform:translateX(-50%) rotateX(6deg)}.effect-accordion:hover .page-cover{transform:translateX(-50%) translateY(-20px) rotateX(-7deg) translateZ(65px)}.effect-accordion:hover .page-mid{transform:translateX(-50%) translateY(46px) scale(.93)}.effect-accordion:hover .page-back{transform:translateX(-50%) translateY(96px) scale(.85)}
.effect-fan:hover .page-cover{transform:translateX(-50%) rotateZ(0) translateZ(80px)}.effect-fan:hover .page-mid{transform:translateX(-3%) rotateZ(18deg) translateZ(10px)}.effect-fan:hover .page-back{transform:translateX(-97%) rotateZ(-18deg)}
.effect-flip:hover .page-cover{transform:translateX(-10%) rotateY(-38deg) rotateZ(3deg) translateZ(80px)}.effect-flip:hover .page-mid{transform:translateX(-63%) translateY(8px) rotateY(10deg)}.effect-flip:hover .page-back{transform:translateX(-76%) translateY(22px) rotateZ(-4deg)}
.effect-slide:hover .page-cover{transform:translateX(-20%) rotateY(-8deg) translateZ(65px)}.effect-slide:hover .page-mid{transform:translateX(-87%) translateY(0) rotateZ(-7deg)}.effect-slide:hover .page-back{transform:translateX(1%) translateY(0) rotateZ(7deg)}
.effect-bloom:hover .page-cover{transform:translateX(-50%) scale(1.03) translateZ(70px)}.effect-bloom:hover .page-mid{transform:translateX(-8%) translateY(-8px) rotateZ(19deg)}.effect-bloom:hover .page-back{transform:translateX(-94%) translateY(-5px) rotateZ(-19deg)}
.effect-stack:hover .page-cover{transform:translateX(-50%) translateY(-28px) rotateZ(-1deg) translateZ(85px)}.effect-stack:hover .page-mid{transform:translateX(-48%) translateY(22px) rotateZ(0)}.effect-stack:hover .page-back{transform:translateX(-46%) translateY(72px) rotateZ(1deg)}
.effect-panorama .page-object{max-width:72%;aspect-ratio:1.35;height:57%;top:20%}.effect-panorama:hover .page-cover{transform:translateX(-50%) rotateX(3deg) translateZ(70px)}.effect-panorama:hover .page-mid{transform:translateX(-78%) translateY(-42px) rotateZ(-9deg)}.effect-panorama:hover .page-back{transform:translateX(-20%) translateY(55px) rotateZ(8deg)}
.effect-pageflip:hover .page-cover{transform:translateX(-18%) rotateY(-52deg) translateZ(80px)}.effect-pageflip:hover .page-mid{transform:translateX(-61%) rotateY(8deg)}.effect-pageflip:hover .page-back{transform:translateX(-63%) translateY(23px) rotateY(4deg)}
.effect-zoom:hover .page-cover{transform:translateX(-50%) scale(1.11) rotateZ(0) translateZ(90px)}.effect-zoom:hover .page-mid{transform:translateX(-18%) translateY(14px) rotateZ(11deg)}.effect-zoom:hover .page-back{transform:translateX(-86%) translateY(14px) rotateZ(-11deg)}
.effect-carousel:hover .page-cover{transform:translateX(-50%) rotateY(0) translateZ(90px)}.effect-carousel:hover .page-mid{transform:translateX(2%) rotateY(-30deg) rotateZ(5deg)}.effect-carousel:hover .page-back{transform:translateX(-102%) rotateY(30deg) rotateZ(-5deg)}
.effect-wave:hover .page-cover{transform:translateX(-50%) translateY(-18px) rotateY(-6deg) translateZ(75px)}.effect-wave:hover .page-mid{transform:translateX(-7%) translateY(20px) rotateZ(13deg)}.effect-wave:hover .page-back{transform:translateX(-94%) translateY(35px) rotateZ(-13deg)}
.effect-gallery .page-object{height:70%;max-width:78%;aspect-ratio:1.5;top:14%}.effect-gallery .page-cover{transform:translateX(-50%) rotateX(4deg)}.effect-gallery .page-mid,.effect-gallery .page-back{display:none}.effect-gallery:hover .page-cover{transform:translateX(-50%) scale(1.08) rotateX(-2deg) translateZ(80px)}

.disciplines{background:linear-gradient(180deg,#f6f4ef 0%,#ebe7de 100%);color:var(--ink);position:relative;overflow:hidden}.disciplines .section-kicker{color:var(--blue)}.disciplines .section-intro{color:#566277}.discipline-list{border-top:1px solid rgba(7,20,45,.15)}.discipline{display:grid;grid-template-columns:90px 1fr auto;gap:25px;align-items:center;padding:31px 4px;border-bottom:1px solid rgba(7,20,45,.15);transition:.35s var(--ease);position:relative;overflow:hidden}.discipline:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:translateX(-102%);transition:.5s var(--ease);z-index:0}.discipline>*{position:relative;z-index:1}.discipline:hover:before{transform:none}.discipline:hover{color:white;padding-left:22px;padding-right:22px}.discipline small{font-weight:800;color:var(--cyan)}.discipline h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(1.8rem,4vw,3.5rem);margin:0}.discipline span{font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.about-image{height:720px;position:relative;border-radius:34px;overflow:hidden;background:#0b2f65}.about-image img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.about-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,16,39,.76))}.about-stamp{position:absolute;left:28px;bottom:28px;z-index:2;padding:17px 20px;border-radius:18px;background:rgba(3,16,39,.72);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16)}.about-stamp strong{display:block;font-family:'Playfair Display',Georgia,serif;font-size:1.7rem}.about-stamp span{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:#aeb8c9}.about-copy h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(3.2rem,6vw,6.2rem);line-height:.94;font-weight:500;letter-spacing:-.05em;margin:15px 0 26px}.about-copy p{color:#9da9bb;line-height:1.85;font-size:1.04rem}.about-copy p strong{color:white}.signature{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:2rem;color:var(--gold);margin:28px 0}.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:35px}.fact{padding:20px;border:1px solid rgba(255,255,255,.12);border-radius:18px}.fact strong{display:block;font-size:1.4rem}.fact span{display:block;color:#8794a8;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;margin-top:4px}
.contact{position:relative;overflow:hidden;padding:120px 0;background:linear-gradient(135deg,#063275,#079ab5);border-radius:48px 48px 0 0}.contact:before{content:"";position:absolute;width:600px;height:600px;border:1px solid rgba(255,255,255,.14);border-radius:50%;right:-180px;top:-260px;box-shadow:0 0 0 80px rgba(255,255,255,.03),0 0 0 160px rgba(255,255,255,.02)}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;position:relative}.contact h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(3.7rem,8vw,8rem);line-height:.86;font-weight:500;letter-spacing:-.055em;margin:16px 0 28px}.contact h2 em{font-style:italic;color:#ffd875}.contact p{max-width:700px;line-height:1.8;color:#d7eff3}.contact-links{display:grid;gap:13px}.contact-link{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(255,255,255,.07);backdrop-filter:blur(15px);font-weight:700;transition:.3s}.contact-link:hover{background:white;color:var(--ink);transform:translateX(7px)}.footer{padding:30px 0;background:#020a1a;border-top:1px solid rgba(255,255,255,.08)}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer img{width:105px}.footer small{color:#69778c}
.reveal{opacity:0;transform:translateY(45px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.in-view{opacity:1;transform:none}
.modal{position:fixed;inset:0;z-index:1000;opacity:0;visibility:hidden;transition:.4s var(--ease)}.modal.open{opacity:1;visibility:visible}.modal-backdrop{position:absolute;inset:0;background:rgba(1,8,22,.92);backdrop-filter:blur(22px)}.modal-shell{position:absolute;inset:18px;border:1px solid rgba(255,255,255,.12);border-radius:30px;background:#06142e;overflow:hidden;transform:scale(.94) translateY(30px);transition:.5s var(--ease);display:grid;grid-template-columns:330px 1fr}.modal.open .modal-shell{transform:none}.modal-side{padding:28px;border-right:1px solid rgba(255,255,255,.11);overflow:auto}.modal-brand{display:flex;align-items:center;gap:10px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9aa8bb}.modal-brand img{width:44px}.modal-side h3{font-family:'Playfair Display',Georgia,serif;font-size:2.6rem;line-height:1.05;font-weight:500;margin:30px 0 14px}.modal-side p{color:#97a5b9;line-height:1.7;font-size:.9rem}.modal-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.modal-tags span{font-size:.62rem;font-weight:800;padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.12)}.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:28px}.thumb{padding:0;border:1px solid transparent;background:#fff;border-radius:6px;overflow:hidden;cursor:pointer;opacity:.62;transition:.2s}.thumb.active{border-color:var(--gold);opacity:1;transform:translateY(-3px)}.thumb img{width:100%;aspect-ratio:.75;object-fit:contain}.modal-main{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(7,154,181,.14),transparent 50%),#020b1d}.page-viewer{width:100%;height:100%;display:grid;place-items:center;padding:50px 90px;perspective:1800px}.page-viewer img{max-width:100%;max-height:calc(100vh - 90px);object-fit:contain;background:white;box-shadow:0 35px 100px rgba(0,0,0,.55);transform:rotateY(-4deg) rotateX(1deg);border-radius:4px;animation:pageIn .5s var(--ease)}@keyframes pageIn{from{opacity:0;transform:translateY(30px) rotateY(-14deg) scale(.96)}to{opacity:1;transform:rotateY(-4deg) rotateX(1deg)}}.modal-close{position:absolute;top:18px;right:18px;z-index:5;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(3,16,39,.7);color:white;cursor:pointer;font-size:1.35rem}.viewer-nav{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:999px;background:rgba(3,16,39,.78);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12)}.viewer-nav button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:transparent;color:white;cursor:pointer}.viewer-nav span{font-size:.72rem;font-weight:800;letter-spacing:.1em;min-width:65px;text-align:center}
@media(max-width:1050px){.hero-grid,.section-head,.about-grid,.contact-grid{grid-template-columns:1fr}.hero-copy{max-width:800px}.hero-visual{height:630px;max-width:720px;width:100%;margin:auto}.section-head{gap:20px}.about-grid{gap:45px}.about-image{height:600px}.modal-shell{grid-template-columns:270px 1fr}.page-viewer{padding:40px}}
@media(max-width:760px){.container{width:min(100% - 26px,1260px)}.nav-links{display:none}.menu-toggle{display:block}.site-header.mobile-open .nav-links{display:grid;position:absolute;top:72px;left:13px;right:13px;padding:22px;background:rgba(3,16,39,.96);border:1px solid rgba(255,255,255,.12);border-radius:22px;backdrop-filter:blur(20px)}.hero{padding-top:110px}.hero h1{font-size:clamp(3.5rem,16vw,5.5rem)}.hero-visual{height:510px}.portrait-wrap{width:78%;left:11%;height:82%}.floating-sheet{width:135px}.sheet-two{width:120px}.sheet-three{width:95px}.hero-badge{width:96px;height:96px;font-size:.5rem}.hero-meta{gap:15px}.projects-grid{grid-template-columns:1fr;gap:55px}.project-stage{height:520px}.section{padding:85px 0}.discipline{grid-template-columns:52px 1fr}.discipline>span{display:none}.about-image{height:520px}.about-facts{grid-template-columns:1fr}.contact{padding:85px 0;border-radius:30px 30px 0 0}.footer-row{align-items:flex-start;flex-direction:column}.modal-shell{inset:8px;grid-template-columns:1fr;grid-template-rows:auto 1fr}.modal-side{padding:17px;border-right:0;border-bottom:1px solid rgba(255,255,255,.1);max-height:230px}.modal-side h3{font-size:1.55rem;margin:14px 0 6px}.modal-side p{display:none}.thumbs{display:flex;overflow-x:auto;margin-top:12px}.thumb{min-width:54px}.page-viewer{padding:25px 12px 65px}.page-viewer img{max-height:calc(100vh - 300px)}.cursor,.cursor-dot{display:none!important}}
@media(min-width:900px) and (pointer:fine){.cursor,.cursor-dot{display:block}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.cursor,.cursor-dot{display:none!important}}


/* =========================================================
   IBTEX PALETTE UPDATE
   Matched to the uploaded light editorial index.html palette:
   ink #111216, paper #f4f0e8, white #fffdf8,
   lime #c9ff4d, violet #6f58ff, orange #ff6b35.
   All motion and 3D interactions are preserved.
   ========================================================= */
:root{
  --navy:#111216;
  --blue:#6f58ff;
  --cyan:#c9ff4d;
  --gold:#ff6b35;
  --lime:#c9ff4d;
  --violet:#6f58ff;
  --orange:#ff6b35;
  --paper:#f4f0e8;
  --ink:#111216;
  --white:#fffdf8;
  --muted:#676970;
  --line:rgba(17,18,22,.14);
  --shadow:0 35px 100px rgba(17,18,22,.18);
}
html{background:var(--paper)}
body{background:var(--paper);color:var(--ink)}
.noise{opacity:.025;mix-blend-mode:multiply}
.ambient{
  background:
    radial-gradient(circle at 80% 0%,rgba(111,88,255,.13),transparent 35%),
    radial-gradient(circle at 10% 65%,rgba(255,107,53,.10),transparent 29%),
    radial-gradient(circle at 82% 78%,rgba(201,255,77,.16),transparent 26%),
    var(--paper);
}
.cursor{border-color:rgba(17,18,22,.45)}
.cursor-dot{background:var(--orange,var(--gold))}
.cursor.active{background:rgba(111,88,255,.10);border-color:var(--violet,var(--blue))}

.preloader{background:var(--paper)}
.preloader-mark,.brand-mark,.footer-mark,.modal-mark{
  display:inline-grid;place-items:center;
  background:var(--ink);color:var(--lime);
  font-weight:900;letter-spacing:.12em;
}
.preloader-mark{font-size:2.3rem;padding:18px 22px;border-radius:14px;box-shadow:0 24px 70px rgba(17,18,22,.18);animation:logoPulse 1.5s var(--ease) infinite alternate}
.loader-line{background:rgba(17,18,22,.14)}
.loader-line i{background:linear-gradient(90deg,var(--orange),var(--violet),var(--lime))}
@keyframes logoPulse{to{transform:translateY(-8px);box-shadow:0 34px 85px rgba(111,88,255,.22)}}

.site-header{color:var(--ink)}
.site-header.scrolled{background:rgba(244,240,232,.86);border-bottom:1px solid var(--line)}
.brand-mark{min-width:58px;height:43px;padding:0 11px;border-radius:9px;font-size:.76rem}
.brand-text{color:var(--ink)}
.brand-text small{color:var(--violet)}
.nav-links>a{color:var(--ink)}
.nav-links>a:hover{color:var(--violet)}
.nav-cta{border-color:var(--line);background:var(--ink);color:var(--white)!important}
.menu-toggle{border-color:var(--line);color:var(--ink)}

.eyebrow{color:var(--muted)}
.eyebrow:before{background:linear-gradient(90deg,var(--orange),var(--violet))}
.hero h1{color:var(--ink)}
.hero h1 em{color:var(--violet);-webkit-text-stroke:0;text-shadow:none}
.hero-lead{color:var(--muted)}
.hero-lead strong{color:var(--ink)}
.btn{border-color:var(--line);color:var(--ink);background:rgba(255,253,248,.55)}
.btn.primary{background:var(--ink);color:var(--white);border-color:var(--ink);box-shadow:0 18px 45px rgba(17,18,22,.18)}
.btn.primary span{color:var(--lime)}
.btn:hover{box-shadow:0 20px 50px rgba(17,18,22,.18)}
.hero-meta div{border-left-color:var(--line)}
.hero-meta span{color:var(--muted)}
.portrait-wrap{border-color:rgba(17,18,22,.14);background:linear-gradient(180deg,rgba(111,88,255,.20),rgba(17,18,22,.96))}
.portrait-wrap:after{background:linear-gradient(180deg,transparent 54%,rgba(17,18,22,.76))}
.hero-orbit{border-color:rgba(17,18,22,.18)}
.hero-orbit:before{background:var(--orange);box-shadow:0 0 25px rgba(255,107,53,.7)}
.hero-orbit:after{background:var(--lime);box-shadow:0 0 25px rgba(201,255,77,.75)}
.floating-sheet{border-color:rgba(17,18,22,.12)}
.hero-badge{background:rgba(17,18,22,.90);color:var(--white);border-color:rgba(255,253,248,.20)}

.marquee{border-color:var(--line);background:rgba(255,253,248,.58)}
.marquee span{color:var(--muted)}
.marquee span:after{color:var(--orange)}

.section-kicker{color:var(--violet)}
.section h2{color:var(--ink)}
.section-intro{color:var(--muted)}
.filter-btn{border-color:var(--line);color:var(--muted)}
.filter-btn.active,.filter-btn:hover{background:var(--ink);color:var(--lime)}
.project-open{color:var(--ink)}
.project-stage{
  background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 54%,var(--ink)),var(--ink) 74%);
  box-shadow:0 28px 70px rgba(17,18,22,.18);
}
.project-stage:after{background:linear-gradient(180deg,transparent 55%,rgba(17,18,22,.62))}
.project-index,.open-cue{color:var(--white)}
.project-card:hover .open-cue b{background:var(--lime);color:var(--ink)}
.project-line{color:var(--muted)}
.project-copy h3{color:var(--ink)}
.project-copy p{color:var(--muted)}
.tag-row span{border-color:var(--line);color:var(--ink);background:rgba(255,253,248,.48)}

.disciplines{background:linear-gradient(180deg,var(--white) 0%,var(--paper) 100%);color:var(--ink)}
.disciplines .section-kicker{color:var(--violet)}
.disciplines .section-intro{color:var(--muted)}
.discipline-list,.discipline{border-color:var(--line)}
.discipline:before{background:linear-gradient(90deg,var(--violet),var(--lime))}
.discipline:hover{color:var(--ink)}
.discipline small{color:var(--orange)}

.about-image{background:var(--ink)}
.about-image:after{background:linear-gradient(180deg,transparent 54%,rgba(17,18,22,.76))}
.about-stamp{background:rgba(17,18,22,.82);border-color:rgba(255,253,248,.18);color:var(--white)}
.about-stamp span{color:rgba(255,253,248,.72)}
.about-copy h2{color:var(--ink)}
.about-copy p{color:var(--muted)}
.about-copy p strong{color:var(--ink)}
.signature{color:var(--violet)}
.fact{border-color:var(--line);background:rgba(255,253,248,.55)}
.fact span{color:var(--muted)}

.contact{background:var(--lime);color:var(--ink)}
.contact:before{border-color:rgba(17,18,22,.14);box-shadow:0 0 0 80px rgba(17,18,22,.025),0 0 0 160px rgba(17,18,22,.018)}
.contact .eyebrow{color:var(--ink)}
.contact h2{color:var(--ink)}
.contact h2 em{color:var(--violet)}
.contact p{color:rgba(17,18,22,.75)}
.contact-link{border-color:rgba(17,18,22,.22);background:rgba(255,253,248,.42);color:var(--ink)}
.contact-link:hover{background:var(--ink);color:var(--lime)}

.footer{background:var(--ink);border-top-color:rgba(255,253,248,.10)}
.footer-mark{min-width:104px;height:45px;padding:0 15px;border-radius:10px;background:var(--white);color:var(--ink);font-size:.9rem}
.footer small{color:rgba(255,253,248,.62)}

.modal-backdrop{background:rgba(17,18,22,.82)}
.modal-shell{border-color:var(--line);background:var(--white);color:var(--ink)}
.modal-side{border-right-color:var(--line);background:var(--paper)}
.modal-brand{color:var(--muted)}
.modal-mark{width:36px;height:32px;border-radius:7px;font-size:.68rem}
.modal-side h3{color:var(--ink)}
.modal-side p{color:var(--muted)}
.modal-tags span{border-color:var(--line);color:var(--ink);background:rgba(255,253,248,.55)}
.thumb.active{border-color:var(--violet)}
.modal-main{background:radial-gradient(circle at 50% 45%,rgba(111,88,255,.12),transparent 50%),var(--paper)}
.modal-close{border-color:rgba(255,253,248,.22);background:var(--ink);color:var(--white)}
.viewer-nav{background:rgba(17,18,22,.90);border-color:rgba(255,253,248,.14);color:var(--white)}
.viewer-nav button{border-color:rgba(255,253,248,.20);color:var(--white)}

@media(max-width:760px){
  .site-header.mobile-open .nav-links{background:rgba(255,253,248,.97);border-color:var(--line)}
  .modal-side{border-bottom-color:var(--line)}
}


/* Uploaded IBTEX Global logo */
.preloader-logo{width:190px;height:120px;border-radius:18px;overflow:hidden;background:#fff;display:grid;place-items:center;box-shadow:0 18px 50px rgba(17,18,22,.18);margin:0 auto 22px}
.preloader-logo img{width:100%;height:100%;object-fit:contain}
.brand-logo{display:flex;align-items:center;gap:12px}
.brand-logo>img{width:58px;height:44px;object-fit:contain;background:#fff;border-radius:10px;padding:3px;box-shadow:0 8px 24px rgba(17,18,22,.12)}
.footer-logo img{width:110px;height:78px;object-fit:contain;background:#fff;border-radius:12px;padding:4px}

/* Bi-directional animated Fiverr testimonials */
.testimonials-section{padding:110px 0 90px;background:linear-gradient(180deg,var(--paper),#fffdf8 45%,var(--paper));overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.testimonial-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:46px}
.testimonial-heading h2{max-width:760px}
.testimonial-summary{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 12px;min-width:230px;padding:19px 22px;border:1px solid var(--line);border-radius:22px;background:rgba(255,253,248,.88);box-shadow:0 16px 45px rgba(17,18,22,.08)}
.testimonial-summary strong{font-family:Georgia,serif;font-size:2.15rem;line-height:1;color:var(--ink)}
.testimonial-summary small{grid-column:2;color:var(--muted);font-size:.73rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.summary-stars{grid-column:2;color:#ffb33e;font-size:.77rem;letter-spacing:.08em;line-height:1}
.fiverr-badge{display:inline-flex;align-items:baseline;font-family:Arial,sans-serif;font-size:.82rem;line-height:1;font-weight:900;letter-spacing:-.045em;color:#404145;text-transform:lowercase}
.fiverr-badge span{color:#1dbf73}
.fiverr-badge-large{grid-row:1 / span 3;align-self:center;justify-self:center;width:58px;height:58px;border-radius:50%;background:#1dbf73;color:#fff;font-size:1rem;display:flex;justify-content:center;align-items:center;box-shadow:0 10px 26px rgba(29,191,115,.24)}
.fiverr-badge-large span{color:#fff}
.testimonial-marquee{width:100%;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);padding:12px 0}
.testimonial-track{display:flex;gap:22px;width:max-content;will-change:transform}
.testimonial-marquee-left .testimonial-track{animation:testimonials-left 58s linear infinite}
.testimonial-marquee-right .testimonial-track{animation:testimonials-right 62s linear infinite}
.testimonial-marquee:hover .testimonial-track{animation-play-state:paused}
.testimonial-card{width:min(445px,86vw);min-height:320px;flex:0 0 auto;background:rgba(255,253,248,.96);border:1px solid rgba(17,18,22,.12);border-radius:26px;padding:27px 28px 24px;box-shadow:0 20px 55px rgba(17,18,22,.10);position:relative;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
.testimonial-card:before{content:'“';position:absolute;right:18px;top:-18px;font-family:Georgia,serif;font-size:9rem;color:rgba(111,88,255,.075);line-height:1;pointer-events:none}
.testimonial-card:hover{transform:translateY(-8px) rotateX(2deg);box-shadow:0 28px 72px rgba(17,18,22,.16)}
.testimonial-card:nth-child(5n+1){border-top:4px solid var(--violet)}
.testimonial-card:nth-child(5n+2){border-top:4px solid var(--orange)}
.testimonial-card:nth-child(5n+3){border-top:4px solid var(--lime)}
.testimonial-card:nth-child(5n+4){border-top:4px solid #148a92}
.testimonial-card:nth-child(5n){border-top:4px solid #14334c}
.testimonial-topline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px;position:relative;z-index:1}
.rating-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#fff7df;border:1px solid rgba(255,179,62,.35);font-size:.78rem;font-weight:900;color:#5c451d}
.rating-chip span{color:#ffb33e}
.testimonial-card>p{font-family:Georgia,serif;font-size:1.12rem;line-height:1.48;margin:0 0 23px;position:relative;z-index:1;flex:1;color:#292a2f}
.reviewer{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:17px;position:relative;z-index:1}
.reviewer-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;display:block;border:2px solid #fff;box-shadow:0 5px 15px rgba(17,18,22,.12)}
.reviewer-initial{display:grid;place-items:center;font-size:1rem;font-weight:900;color:#fff}
.reviewer-initial-violet{background:linear-gradient(145deg,#6f58ff,#4433b5)}
.reviewer-initial-orange{background:linear-gradient(145deg,#ff8a3d,#d64e13)}
.reviewer-initial-lime{background:linear-gradient(145deg,#a4cf29,#5f8510)}
.reviewer-initial-teal{background:linear-gradient(145deg,#1e9ca2,#096269)}
.reviewer-initial-navy{background:linear-gradient(145deg,#274f70,#10283d)}
.reviewer-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.reviewer-copy b{font-size:.94rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.country-line{display:flex!important;align-items:center;gap:7px!important;font-size:.72rem!important;text-transform:none!important;letter-spacing:0!important;color:var(--muted)!important;font-weight:750!important}
.country-line img{width:19px;height:13px;object-fit:cover;border-radius:2px;box-shadow:0 1px 4px rgba(17,18,22,.12)}
.review-excerpt{font-size:.62rem!important;text-transform:uppercase!important;letter-spacing:.09em!important;color:#6f58ff!important;font-weight:900!important;border:1px solid rgba(111,88,255,.2);background:rgba(111,88,255,.07);padding:6px 8px;border-radius:999px;white-space:nowrap}
.fiverr-source{margin-top:15px;display:flex;align-items:center;justify-content:space-between;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#404145;position:relative;z-index:1}
.fiverr-source:hover{color:#1dbf73}
.fiverr-source span{font-size:1rem}
.testimonial-note{font-size:.78rem;color:var(--muted);text-align:center;margin-top:24px}
@keyframes testimonials-left{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 11px))}}
@keyframes testimonials-right{from{transform:translateX(calc(-50% - 11px))}to{transform:translateX(0)}}
@media(max-width:900px){.testimonial-heading{align-items:start}.testimonial-summary{min-width:205px}.testimonial-card{min-height:330px}}
@media(max-width:800px){.testimonial-heading{display:block}.testimonial-summary{margin-top:22px;width:max-content;max-width:100%}.testimonial-card{min-height:310px;padding:24px}.testimonial-card>p{font-size:1.02rem}.reviewer{grid-template-columns:42px 1fr}.reviewer-avatar{width:42px;height:42px}.review-excerpt{grid-column:2;justify-self:start}.brand-text{display:none}}
@media(prefers-reduced-motion:reduce){.testimonial-track{animation:none!important}.testimonial-marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}}


/* Expanded animated portfolio boards */
.showcase-section{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--paper) 0%,rgba(255,253,248,.92) 48%,var(--paper) 100%);border-top:1px solid var(--line)}
.showcase-section:before{content:"";position:absolute;width:720px;height:720px;border-radius:50%;right:-340px;top:180px;background:radial-gradient(circle,rgba(111,88,255,.12),transparent 68%);pointer-events:none}
.showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 30px;align-items:start}
.showcase-card{min-width:0;transition:opacity .55s var(--ease),transform .65s var(--ease)}
.showcase-card.is-collapsed{display:none}
.showcase-section.expanded .showcase-extra{display:block;animation:showcaseReveal .8s var(--ease) both}
@keyframes showcaseReveal{from{opacity:0;transform:translateY(50px) scale(.965)}to{opacity:1;transform:none}}
.showcase-stage{height:650px;position:relative;border-radius:32px;overflow:hidden;perspective:1500px;transform-style:preserve-3d;background:linear-gradient(145deg,color-mix(in srgb,var(--board-accent) 22%,var(--ink)),var(--ink));box-shadow:0 30px 80px rgba(17,18,22,.18);isolation:isolate}
.showcase-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,70%) var(--my,22%),rgba(255,255,255,.30),transparent 27%);opacity:.7;z-index:3;pointer-events:none}
.showcase-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(17,18,22,.72));z-index:5;pointer-events:none}
.showcase-halo{position:absolute;width:520px;height:520px;border-radius:50%;left:50%;top:44%;transform:translate(-50%,-50%);background:var(--board-accent);filter:blur(110px);opacity:.34;z-index:0;animation:showcasePulse 5.6s ease-in-out infinite alternate}
@keyframes showcasePulse{to{transform:translate(-50%,-50%) scale(1.18);opacity:.48}}
.showcase-grid-lines{position:absolute;inset:0;z-index:1;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px);background-size:44px 44px;transform:perspective(700px) rotateX(62deg) translateY(43%);transform-origin:bottom}
.showcase-board{position:absolute;z-index:2;width:min(73%,520px);left:14%;top:6%;transform-origin:50% 8%;transform:translate3d(var(--board-x),var(--board-y),60px) rotateZ(var(--board-rot)) rotateY(0deg);transition:transform 1.15s var(--ease),filter .6s var(--ease);filter:drop-shadow(0 28px 35px rgba(0,0,0,.34));will-change:transform}
.showcase-board img{width:100%;height:auto;border-radius:8px;background:#fff;border:1px solid rgba(255,255,255,.65)}
.showcase-card:hover .showcase-board{transform:translate3d(var(--board-hover-x),var(--board-hover-y),90px) rotateZ(var(--board-hover-rot)) rotateY(var(--board-hover-ry)) scale(var(--board-hover-scale));filter:drop-shadow(0 44px 55px rgba(0,0,0,.42))}
.showcase-index{position:absolute;left:26px;top:24px;z-index:7;color:#fff;font-size:.7rem;font-weight:900;letter-spacing:.18em}
.showcase-cue{position:absolute;right:24px;bottom:22px;z-index:7;display:flex;align-items:center;gap:10px;color:#fff;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.showcase-cue b{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ink);transition:.35s var(--ease)}
.showcase-card:hover .showcase-cue b{background:var(--lime);transform:rotate(45deg) scale(1.08)}
.showcase-copy{padding:25px 4px 0;color:var(--ink)}
.showcase-meta{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.showcase-copy h3{font-family:'Playfair Display',Georgia,serif;font-size:2rem;line-height:1.08;font-weight:500;letter-spacing:-.025em;margin:12px 0 10px;color:var(--ink)}
.showcase-copy p{color:var(--muted);line-height:1.72;margin:0 0 17px}
.showcase-actions{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;margin-top:58px;text-align:center}
.showcase-toggle{cursor:pointer}
.showcase-toggle .toggle-icon{font-size:1.3rem;line-height:1;color:var(--lime);transition:.35s var(--ease)}
.showcase-section.expanded .showcase-toggle .toggle-icon{transform:rotate(45deg)}
.showcase-actions p{max-width:560px;margin:0;color:var(--muted);font-size:.86rem;line-height:1.6}
@media(max-width:900px){.showcase-grid{grid-template-columns:1fr;gap:58px}.showcase-stage{height:610px}.showcase-board{width:min(70%,500px);left:15%}}
@media(max-width:600px){.showcase-stage{height:520px;border-radius:24px}.showcase-board{width:78%;left:11%;top:7%}.showcase-copy h3{font-size:1.65rem}.showcase-meta{font-size:.61rem}.showcase-actions{margin-top:42px}}
@media(prefers-reduced-motion:reduce){.showcase-halo{animation:none}.showcase-board{transition:none}.showcase-section.expanded .showcase-extra{animation:none}}


/* === IBTEX logo, FAQ and portfolio-page refinements === */
.brand-logo{min-width:92px;display:flex;align-items:center}
.brand-logo>img{width:92px;height:64px;object-fit:contain;background:transparent;border-radius:0;padding:0;box-shadow:none;filter:drop-shadow(0 7px 15px rgba(17,18,22,.12))}
.site-header.scrolled .brand-logo>img{width:82px;height:56px}
.footer-logo{display:grid;place-items:center;width:132px;height:92px;border-radius:16px;background:var(--white);padding:8px;box-shadow:0 16px 42px rgba(0,0,0,.24)}
.footer-logo img{width:100%;height:100%;object-fit:contain;background:transparent;border-radius:0;padding:0}
.portfolio-page-cta{margin-top:74px;padding:34px 38px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,rgba(255,253,248,.9),rgba(201,255,77,.18));display:flex;align-items:center;justify-content:space-between;gap:34px;box-shadow:0 22px 70px rgba(17,18,22,.08)}
.portfolio-page-cta>div{max-width:720px}.portfolio-page-cta>div>span{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:900;color:var(--violet)}
.portfolio-page-cta h3{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.8rem,3vw,3rem);line-height:1.05;margin:10px 0 0;color:var(--ink)}
.faq-section{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--paper),rgba(255,253,248,.95));border-top:1px solid var(--line)}
.faq-section:before{content:"";position:absolute;width:620px;height:620px;border-radius:50%;left:-310px;top:90px;background:radial-gradient(circle,rgba(201,255,77,.28),transparent 67%);pointer-events:none}
.faq-grid{position:relative;max-width:1020px;margin-left:auto;border-bottom:1px solid var(--line)}
.faq-item{border-top:1px solid var(--line);background:rgba(255,253,248,.28);transition:background .35s var(--ease),border-color .35s var(--ease)}
.faq-item:hover,.faq-item.open{background:rgba(255,253,248,.72)}
.faq-question{width:100%;display:grid;grid-template-columns:58px 1fr 44px;align-items:center;gap:18px;text-align:left;border:0;background:transparent;color:var(--ink);padding:27px 12px;cursor:pointer;font:inherit}
.faq-number{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:var(--violet)}
.faq-question>span:nth-child(2){font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.18}
.faq-question b{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--lime);font-size:1.25rem;transition:transform .4s var(--ease),background .3s,color .3s}
.faq-item.open .faq-question b{transform:rotate(45deg);background:var(--violet);color:#fff}
.faq-answer{max-height:0;opacity:0;overflow:hidden;transition:max-height .55s var(--ease),opacity .35s ease}
.faq-item.open .faq-answer{opacity:1}
.faq-answer-inner{padding:0 70px 30px 88px;color:var(--muted);font-size:1.03rem;line-height:1.82;max-width:880px}
.portfolio-page .showcase-section{padding-top:120px}.portfolio-page .showcase-card{display:block!important}
.portfolio-hero-visual{perspective:1200px}.portfolio-float{position:absolute;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 25px 70px rgba(17,18,22,.25);transform-style:preserve-3d;animation:portfolioFloat 6s var(--ease) infinite alternate}
.portfolio-float img{width:100%;height:100%;object-fit:cover;object-position:top}.board-float-one{width:38%;height:75%;left:7%;top:12%;transform:rotate(-9deg) translateZ(45px)}.board-float-two{width:34%;height:70%;right:9%;top:8%;transform:rotate(8deg) translateZ(80px);animation-delay:-2s}.board-float-three{width:29%;height:58%;left:37%;bottom:4%;transform:rotate(1deg) translateZ(120px);animation-delay:-4s}
@keyframes portfolioFloat{to{translate:0 -13px;rotate:0 1 0 4deg}}
@media(max-width:900px){.portfolio-page-cta{align-items:flex-start;flex-direction:column}.faq-grid{max-width:none}.footer-logo{width:120px;height:84px}}
@media(max-width:760px){.brand-logo>img{width:76px;height:54px}.site-header.scrolled .brand-logo>img{width:70px;height:50px}.portfolio-page-cta{padding:26px 22px}.faq-question{grid-template-columns:42px 1fr 38px;gap:10px;padding:23px 4px}.faq-answer-inner{padding:0 48px 26px 52px}.portfolio-page .showcase-stage{height:540px}.board-float-one{width:46%;height:70%;left:1%}.board-float-two{width:42%;height:66%;right:1%}.board-float-three{width:36%;height:53%;left:32%}}
@media(prefers-reduced-motion:reduce){.portfolio-float{animation:none}.faq-answer{transition:none}}


/* === Web design capability + animated All Work filter experience === */
.filter-row{
  position:relative;
  isolation:isolate;
  padding:18px;
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(255,253,248,.92),rgba(244,240,232,.76));
  box-shadow:0 22px 60px rgba(17,18,22,.08);
  overflow:hidden;
}
.filter-row:before{
  content:"";
  position:absolute;
  width:360px;height:360px;border-radius:50%;
  left:-150px;top:-235px;
  background:radial-gradient(circle,rgba(111,88,255,.30),rgba(201,255,77,.12) 42%,transparent 70%);
  animation:filterAura 7s ease-in-out infinite alternate;
  z-index:-1;
}
.filter-row:after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.72) 45%,transparent 72%);
  transform:translateX(-125%);
  animation:filterSweep 7.5s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
@keyframes filterAura{to{transform:translate(1180px,135px) scale(1.24);opacity:.58}}
@keyframes filterSweep{0%,52%{transform:translateX(-125%)}75%,100%{transform:translateX(125%)}}
.filter-row .filter-btn{position:relative;z-index:2;overflow:hidden;transform-origin:center}
.filter-row.in-view .filter-btn{animation:filterChipEnter .56s var(--ease) both;animation-delay:calc(var(--chip-index,0) * 42ms)}
@keyframes filterChipEnter{from{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:none}}
.filter-btn:before{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(circle at 50% 50%,rgba(201,255,77,.36),transparent 62%);
  opacity:0;transform:scale(.2);transition:.35s var(--ease);z-index:-1
}
.filter-btn:hover:before,.filter-btn.filter-clicked:before{opacity:1;transform:scale(1.25)}
.filter-btn[data-filter="All"].active{
  background:linear-gradient(110deg,var(--ink),#2b2c33);
  color:var(--lime);
  box-shadow:0 0 0 1px rgba(201,255,77,.22),0 13px 28px rgba(17,18,22,.22),0 0 34px rgba(111,88,255,.16);
  animation:allWorkPulse 2.7s ease-in-out infinite;
}
@keyframes allWorkPulse{50%{box-shadow:0 0 0 6px rgba(201,255,77,.07),0 16px 36px rgba(17,18,22,.24),0 0 42px rgba(111,88,255,.25)}}
.project-card.filtering-out{opacity:0!important;transform:translateY(24px) scale(.97)!important;transition:opacity .17s ease,transform .17s ease}
.project-card.filter-enter{animation:filteredCardEnter .66s var(--ease) both;animation-delay:calc(var(--filter-index,0) * 65ms)}
@keyframes filteredCardEnter{from{opacity:0;transform:translateY(46px) rotateX(4deg) scale(.96)}to{opacity:1;transform:none}}

/* Unique browser/device composition for Web Design & Development */
.web-project-stage{background:linear-gradient(145deg,#25195d,#111216 72%)}
.web-project-stage:before{background:radial-gradient(circle at var(--mx,72%) var(--my,20%),rgba(201,255,77,.28),transparent 30%)}
.web-browser-window{
  position:absolute;z-index:4;left:8%;top:10%;width:76%;height:72%;
  border-radius:15px;overflow:hidden;background:#fff;
  box-shadow:0 30px 70px rgba(0,0,0,.43);
  transform:perspective(1100px) rotateY(-8deg) rotateZ(-1.5deg) translateZ(55px);
  transition:transform .75s var(--ease),box-shadow .75s var(--ease)
}
.browser-bar{height:31px;padding:0 11px;display:flex;align-items:center;gap:6px;background:#f4f0e8;border-bottom:1px solid rgba(17,18,22,.12);font-size:.56rem;font-weight:800;color:#676970;text-transform:uppercase;letter-spacing:.08em}
.browser-bar i{width:7px;height:7px;border-radius:50%;background:#ff6b35}.browser-bar i:nth-child(2){background:#c9ff4d}.browser-bar i:nth-child(3){background:#6f58ff}.browser-bar span{margin-left:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser-scroll{height:calc(100% - 31px);overflow:hidden;background:#fff}.browser-scroll img{width:100%;height:auto;min-height:100%;object-fit:cover;object-position:top;transition:transform 3.8s cubic-bezier(.22,.75,.2,1)}
.web-device-preview{position:absolute;z-index:6;right:5%;bottom:7%;width:27%;height:48%;padding:8px;border-radius:25px;background:#111216;box-shadow:0 26px 55px rgba(0,0,0,.44);transform:rotate(7deg) translateZ(95px);transition:.75s var(--ease);overflow:hidden}
.web-device-preview:before{content:"";position:absolute;left:50%;top:5px;width:32%;height:4px;border-radius:99px;background:rgba(255,255,255,.28);transform:translateX(-50%);z-index:3}.web-device-preview img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:18px}
.web-code-lines{position:absolute;z-index:2;left:5%;bottom:5%;display:grid;gap:7px;transform:rotate(-6deg)}.web-code-lines i{height:4px;width:88px;border-radius:6px;background:linear-gradient(90deg,var(--lime),transparent)}.web-code-lines i:nth-child(2){width:62px}.web-code-lines i:nth-child(3){width:104px;background:linear-gradient(90deg,var(--orange),transparent)}.web-code-lines i:nth-child(4){width:74px;background:linear-gradient(90deg,var(--violet),transparent)}
.effect-browser:hover .web-browser-window{transform:perspective(1100px) rotateY(2deg) rotateZ(0) translate3d(2%,-3%,90px);box-shadow:0 45px 90px rgba(0,0,0,.48)}
.effect-browser:hover .browser-scroll img{transform:translateY(-18%)}
.effect-browser:hover .web-device-preview{transform:rotate(-3deg) translate3d(-12%,-8%,125px) scale(1.04)}
.effect-browser .project-glow{background:#6f58ff;opacity:.42;animation:webGlow 4s ease-in-out infinite alternate}
@keyframes webGlow{to{transform:translate(-120px,140px) scale(1.28);background:#c9ff4d;opacity:.22}}

@media(max-width:760px){
  .filter-row{padding:13px;border-radius:22px}
  .filter-row:before,.filter-row:after{animation:none}
  .web-browser-window{left:5%;width:82%;height:68%}
  .web-device-preview{width:31%;height:43%;right:3%}
}
@media(prefers-reduced-motion:reduce){
  .filter-row:before,.filter-row:after,.filter-btn[data-filter="All"].active,.effect-browser .project-glow{animation:none!important}
  .filter-row.in-view .filter-btn,.project-card.filter-enter{animation:none!important}
  .browser-scroll img,.web-browser-window,.web-device-preview{transition:none!important}
}


/* === Trusted Design & Technology Stack ===
   Animation: Infinite Floating Logo Marquee */
.stack-section{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:transparent;
  color:#17181d;
}
.stack-section::before,
.stack-section::after{
  content:"";
  position:absolute;
  inset:auto;
  pointer-events:none;
  z-index:-1;
  border-radius:50%;
  filter:blur(40px);
  opacity:.55;
}
.stack-section::before{
  width:320px;
  height:320px;
  left:-80px;
  top:30px;
  background:radial-gradient(circle,rgba(107,82,255,.16),rgba(107,82,255,0) 70%);
}
.stack-section::after{
  width:320px;
  height:320px;
  right:-90px;
  bottom:10px;
  background:radial-gradient(circle,rgba(0,114,255,.10),rgba(0,114,255,0) 70%);
}
.stack-section .section-kicker{color:#7c68ff}
.stack-section .section-intro{color:#616573;max-width:680px}
.stack-heading h2{max-width:700px}

.stack-marquee-shell{
  position:relative;
  margin-top:20px;
}
.stack-marquee{
  width:100%;
  overflow:hidden;
  background:transparent;
}
.mask-left-right{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);
}
.stack-track{
  width:max-content;
  display:flex;
  align-items:stretch;
  gap:18px;
  animation:stackMarqueeMove 30s linear infinite;
  will-change:transform;
}
.stack-marquee:hover .stack-track{
  animation-play-state:paused;
}
.stack-logo-card{
  position:relative;
  width:265px;
  min-height:145px;
  padding:18px;
  flex:0 0 auto;
  border-radius:20px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.12);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  box-shadow:0 12px 24px rgba(24,29,40,0.06);
  opacity:.70;
  transform:translateY(0) scale(1);
  transition:transform .3s ease, opacity .3s ease, box-shadow .3s ease, filter .3s ease, border-color .3s ease;
  animation:stackFloat 3s ease-in-out infinite;
  animation-delay:var(--float-delay, 0s);
}
.stack-logo-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.03));
  pointer-events:none;
}
.stack-logo-card::after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  background:linear-gradient(135deg,color-mix(in srgb,var(--stack-accent) 50%,transparent),rgba(255,255,255,0));
  opacity:0;
  transition:opacity .3s ease;
  z-index:-1;
}
.stack-logo-card:hover{
  opacity:1;
  transform:translateY(-8px) scale(1.08);
  box-shadow:0 0 0 1px rgba(124,104,255,.16), 0 14px 26px rgba(65,84,140,.14), 0 0 28px rgba(110,92,255,.20), 0 0 34px rgba(86,145,255,.14);
  filter:saturate(1.08);
  border-color:rgba(124,104,255,.25);
}
.stack-logo-card:hover::after{opacity:1}
.stack-mini-label{
  position:relative;
  z-index:2;
  color:#8d91a0;
  font-size:.63rem;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.stack-logo-row{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:20px;
}
.stack-logo-row h3{
  margin:0;
  color:#17181d;
  font-family:Georgia,serif;
  font-size:1.45rem;
  font-weight:500;
  line-height:1.08;
}
.stack-logo-icon{
  width:62px;
  height:62px;
  flex:0 0 auto;
  position:relative;
  display:grid;
  place-items:center;
  border-radius:18px;
  font-size:1.6rem;
  font-weight:900;
  color:#fff;
  letter-spacing:-.06em;
  background:linear-gradient(145deg,color-mix(in srgb,var(--stack-accent) 82%,#fff 6%),color-mix(in srgb,var(--stack-accent-2) 74%,#111 12%));
  box-shadow:0 10px 22px color-mix(in srgb,var(--stack-accent) 22%,transparent);
}

/* Logo marks */
.figma-mark{
  display:grid;
  grid-template-columns:repeat(2,16px);
  grid-template-rows:repeat(3,16px);
  gap:0;
  padding:7px;
  background:#fff;
}
.figma-mark i{display:block;width:16px;height:16px}
.figma-mark i:nth-child(1){background:#f24e1e;border-radius:8px 0 0 8px}
.figma-mark i:nth-child(2){background:#ff7262;border-radius:0 8px 8px 0}
.figma-mark i:nth-child(3){background:#a259ff;border-radius:8px 0 0 8px}
.figma-mark i:nth-child(4){background:#1abcfe;border-radius:50%}
.figma-mark i:nth-child(5){grid-column:1;background:#0acf83;border-radius:8px 0 8px 8px}
.round-mark{border-radius:50%;border:3px solid rgba(255,255,255,.88);background:#21759b;font-family:Georgia,serif}
.bubble-mark{overflow:visible;background:#fff;color:#111216}
.bubble-mark b{font-size:2.3rem;line-height:1}
.bubble-mark i{position:absolute;right:7px;width:7px;height:7px;border-radius:50%;background:#6f58ff}
.bubble-mark i:nth-of-type(1){top:12px}
.bubble-mark i:nth-of-type(2){top:24px}
.bubble-mark i:nth-of-type(3){top:36px}
.shopify-mark{border-radius:15px 15px 20px 20px;background:#95bf47}
.shopify-mark::before{content:"";position:absolute;top:-8px;left:16px;width:30px;height:16px;border:4px solid #fff;border-bottom:0;border-radius:22px 22px 0 0}
.shopify-mark b{font-family:Georgia,serif;font-size:1.8rem}
.adobe-mark{border-radius:14px}
.photoshop-mark{border:2px solid #31a8ff;background:#001e36;color:#31a8ff}
.illustrator-mark{border:2px solid #ff9a00;background:#330000;color:#ff9a00}
.canva-mark{border-radius:50%;background:linear-gradient(135deg,#00c4cc,#7d2ae8);font-family:Georgia,serif;font-style:italic}
.framer-mark{overflow:hidden;border-radius:14px;background:#fff}
.framer-mark i{position:absolute;left:15px;width:34px;height:18px;background:#0055ff;clip-path:polygon(0 0,100% 0,50% 100%,0 100%)}
.framer-mark i:first-child{top:13px}
.framer-mark i:last-child{top:31px;transform:rotate(180deg);background:#111216}

@keyframes stackMarqueeMove{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-50% - 9px))}
}
@keyframes stackFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

@media (max-width: 900px){
  .stack-logo-card{width:232px;min-height:138px;padding:16px}
  .stack-logo-row h3{font-size:1.28rem}
}
@media (max-width: 640px){
  .stack-track{gap:14px;animation-duration:26s}
  .stack-logo-card{width:210px;min-height:130px;padding:15px;border-radius:18px}
  .stack-logo-row{gap:12px;margin-top:16px}
  .stack-logo-icon{width:54px;height:54px;border-radius:16px}
  .stack-logo-row h3{font-size:1.18rem}
}
@media (prefers-reduced-motion: reduce){
  .stack-track,.stack-logo-card{animation:none !important}
  .stack-logo-card:hover{transform:none}
}


/* Correct uploaded tool logos */
.stack-logo-icon.image-logo{
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.stack-logo-icon.image-logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,0.10));
}
.stack-logo-icon.square-logo{
  width:62px;
  height:62px;
}
.stack-logo-icon.wide-logo{
  width:108px;
  height:46px;
}
.stack-logo-icon.wordpress-logo{
  width:62px;
  height:62px;
}
.stack-logo-icon.canva-logo{
  width:62px;
  height:62px;
}
.stack-logo-icon.shopify-logo{
  width:110px;
  height:52px;
}
.stack-logo-icon.bubble-logo{
  width:98px;
  height:42px;
}
@media (max-width: 640px){
  .stack-logo-icon.wide-logo{width:92px;height:42px;}
  .stack-logo-icon.shopify-logo{width:96px;height:46px;}
  .stack-logo-icon.bubble-logo{width:86px;height:38px;}
}


/* =========================================================
   ASK IBTEX — AI DESIGN ASSISTANT
   ========================================================= */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ai-launcher{
  position:fixed;right:24px;bottom:24px;z-index:1250;
  min-width:168px;height:62px;padding:7px 15px 7px 8px;
  display:flex;align-items:center;gap:11px;
  border:1px solid rgba(255,255,255,.16);border-radius:999px;
  background:rgba(17,18,22,.94);color:#fff;cursor:pointer;
  box-shadow:0 18px 55px rgba(17,18,22,.26);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  isolation:isolate;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.ai-launcher:hover{transform:translateY(-4px);border-color:rgba(201,255,77,.46);box-shadow:0 24px 65px rgba(17,18,22,.34),0 0 32px rgba(111,88,255,.18)}
.ai-launcher-glow{position:absolute;inset:-60%;z-index:-1;background:conic-gradient(from 180deg,transparent,rgba(111,88,255,.46),rgba(201,255,77,.38),transparent 62%);animation:aiLauncherSpin 6s linear infinite;opacity:.45}
.ai-launcher-mark{width:47px;height:47px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:linear-gradient(145deg,var(--violet),#4d37e8 55%,var(--lime));color:#fff;font-size:.84rem;font-weight:950;letter-spacing:.05em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22),0 8px 22px rgba(111,88,255,.34)}
.ai-launcher-copy{display:grid;text-align:left;line-height:1.05}.ai-launcher-copy strong{font-size:.83rem;letter-spacing:.02em}.ai-launcher-copy small{margin-top:5px;color:#aeb2bc;font-size:.61rem;letter-spacing:.08em;text-transform:uppercase}
@keyframes aiLauncherSpin{to{transform:rotate(360deg)}}

.ai-chat-panel{
  position:fixed;right:24px;bottom:98px;z-index:1260;
  width:min(405px,calc(100vw - 28px));height:min(650px,calc(100vh - 125px));
  display:grid;grid-template-rows:auto auto 1fr auto auto auto;
  overflow:hidden;border:1px solid rgba(17,18,22,.13);border-radius:28px;
  background:rgba(255,253,248,.96);color:var(--ink);
  box-shadow:0 36px 110px rgba(17,18,22,.28);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  opacity:0;visibility:hidden;transform:translateY(26px) scale(.94);transform-origin:bottom right;
  transition:opacity .36s var(--ease),visibility .36s,transform .42s var(--ease);
}
.ai-chat-panel.open{opacity:1;visibility:visible;transform:none}
.ai-chat-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border-bottom:1px solid var(--line);background:linear-gradient(115deg,rgba(111,88,255,.10),rgba(201,255,77,.12))}
.ai-chat-brand{display:flex;align-items:center;gap:11px}.ai-chat-logo{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:#fff;box-shadow:0 8px 24px rgba(17,18,22,.11);overflow:hidden}.ai-chat-logo img{width:100%;height:100%;object-fit:contain}.ai-chat-brand>span:last-child{display:grid}.ai-chat-brand strong{font-family:Georgia,serif;font-size:1.12rem}.ai-chat-brand small{display:flex;align-items:center;gap:7px;margin-top:3px;color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.09em}.ai-chat-brand small i{width:6px;height:6px;border-radius:50%;background:#55bd6d;box-shadow:0 0 10px rgba(85,189,109,.7)}
.ai-chat-close{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.65);color:var(--ink);cursor:pointer;font-size:1.25rem;transition:.25s}.ai-chat-close:hover{transform:rotate(8deg);background:var(--ink);color:#fff}
.ai-chat-context{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.ai-chat-context::-webkit-scrollbar{display:none}.ai-chat-context span{flex:0 0 auto;padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.58rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase;background:rgba(255,255,255,.55)}
.ai-chat-messages{padding:18px 15px 14px;overflow-y:auto;scroll-behavior:smooth;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(111,88,255,.25) transparent}
.ai-message{max-width:88%;padding:12px 14px;border-radius:18px;font-size:.82rem;line-height:1.55;white-space:pre-wrap;word-wrap:break-word;animation:aiMessageIn .34s var(--ease) both}.ai-message.assistant{align-self:flex-start;border:1px solid var(--line);background:#fff;border-bottom-left-radius:6px;box-shadow:0 7px 22px rgba(17,18,22,.05)}.ai-message.user{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:6px;box-shadow:0 10px 25px rgba(17,18,22,.16)}.ai-message.error{border-color:rgba(255,107,53,.3);background:#fff3ed;color:#7b321d}.ai-message-meta{display:block;margin-top:7px;color:#9397a0;font-size:.56rem;text-transform:uppercase;letter-spacing:.08em}.ai-message.user .ai-message-meta{color:#adb0b8}@keyframes aiMessageIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.ai-quick-prompts{display:flex;gap:7px;padding:0 14px 12px;overflow-x:auto;scrollbar-width:none}.ai-quick-prompts::-webkit-scrollbar{display:none}.ai-quick-prompts button{flex:0 0 auto;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(111,88,255,.05);color:var(--ink);cursor:pointer;font-size:.66rem;font-weight:780;transition:.24s}.ai-quick-prompts button:hover{transform:translateY(-2px);border-color:rgba(111,88,255,.4);background:rgba(111,88,255,.1)}
.ai-typing{display:none;align-items:center;gap:5px;padding:0 17px 10px;color:var(--muted)}.ai-typing.show{display:flex}.ai-typing span{width:6px;height:6px;border-radius:50%;background:var(--violet);animation:aiTypingDot 1.1s ease-in-out infinite}.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}.ai-typing em{margin-left:4px;font-style:normal;font-size:.61rem;letter-spacing:.06em;text-transform:uppercase}@keyframes aiTypingDot{0%,70%,100%{transform:translateY(0);opacity:.45}35%{transform:translateY(-5px);opacity:1}}
.ai-chat-form{display:grid;grid-template-columns:1fr 46px;gap:8px;padding:11px 13px;border-top:1px solid var(--line);background:rgba(244,240,232,.72)}.ai-chat-form textarea{width:100%;max-height:110px;resize:none;padding:12px 13px;border:1px solid var(--line);border-radius:16px;outline:none;background:#fff;color:var(--ink);font:inherit;font-size:.78rem;line-height:1.4;transition:border-color .25s,box-shadow .25s}.ai-chat-form textarea:focus{border-color:rgba(111,88,255,.48);box-shadow:0 0 0 3px rgba(111,88,255,.08)}.ai-chat-form button{align-self:end;width:46px;height:46px;border:0;border-radius:15px;background:linear-gradient(145deg,var(--violet),#4f39e5);color:#fff;cursor:pointer;font-size:1.15rem;box-shadow:0 10px 24px rgba(111,88,255,.26);transition:.25s}.ai-chat-form button:hover{transform:translateY(-2px) rotate(4deg)}.ai-chat-form button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.ai-chat-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid var(--line);color:#8b8e97;font-size:.55rem}.ai-chat-footer div{display:flex;gap:9px}.ai-chat-footer a{font-weight:850;color:var(--violet);text-transform:uppercase;letter-spacing:.06em}
@media(max-width:760px){.ai-launcher{right:13px;bottom:13px;min-width:0;width:58px;height:58px;padding:5px}.ai-launcher-copy{display:none}.ai-launcher-mark{width:48px;height:48px}.ai-chat-panel{right:8px;bottom:78px;width:calc(100vw - 16px);height:min(670px,calc(100vh - 90px));border-radius:23px}.ai-chat-footer{font-size:.52rem}}
@media(prefers-reduced-motion:reduce){.ai-launcher-glow,.ai-typing span{animation:none!important}.ai-chat-panel,.ai-message,.ai-launcher{transition:none!important}}
