.cta-button--ghost{color:#4ecdc4b3;background:0 0;border:1px solid #4ecdc440}.cta-button--ghost:hover{color:#4ecdc4;background:#4ecdc40f;border-color:#4ecdc4;box-shadow:0 0 20px #4ecdc414}.ca-hero{background:var(--color-bg);justify-content:center;align-items:center;height:100%;display:flex}#caHeroCanvas{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.ca-hero__content{z-index:2;text-align:center;pointer-events:none;padding:0 2rem;position:relative}.ca-hero__title{font-family:var(--font-heading);letter-spacing:-.02em;margin:0;font-size:clamp(3.5rem,10vw,8rem);font-style:italic;font-weight:300;line-height:1.05}.ca-hero__title-line{opacity:0;animation:1.4s cubic-bezier(.16,1,.3,1) .1s forwards caHeroReveal;display:block;transform:translateY(60px)}.ca-hero__title--script{font-family:TheSignature,Mr Dafoe,cursive;font-size:1.1em;font-style:normal;font-weight:400}@keyframes caHeroReveal{to{opacity:1;transform:translateY(0)}}.ca-hero__sub{font-family:var(--font-heading);opacity:0;color:var(--color-text-dim);margin-top:1.5rem;font-size:clamp(1rem,2vw,1.3rem);font-style:italic;font-weight:300;line-height:1.8;animation:1.2s .5s forwards fadeIn}.ca-hero__categories{font-family:var(--font-mono);letter-spacing:.15em;opacity:0;margin-top:.75rem;font-size:.65rem;animation:1s .8s forwards fadeIn}.ca-hero__cat{color:#4ecdc4}.cube-viewport{perspective:1200px;z-index:1;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.cube{width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.16,1,.3,1);position:relative}.cube__face{backface-visibility:hidden;width:100%;height:100%;top:0;left:0;overflow:hidden auto;position:absolute!important}.ca-portfolio{background:var(--color-bg);flex-direction:column;justify-content:flex-start;align-items:center;height:100%;padding:0;display:flex;position:relative}.ca-portfolio__header{text-align:left;z-index:2;width:100%;max-width:900px;margin:0 auto;padding:2rem 3rem 1rem;position:relative}.ca-portfolio__eyebrow{font-family:var(--font-mono);letter-spacing:.35em;text-transform:uppercase;color:#4ecdc4;opacity:.5;margin-bottom:1.2rem;font-size:.55rem}.ca-portfolio__title{font-family:var(--font-heading);letter-spacing:.02em;color:var(--color-text);font-size:clamp(2.2rem,5vw,3.8rem);font-style:italic;font-weight:300}.ca-portfolio__title--script{font-family:TheSignature,Mr Dafoe,cursive;font-size:1.15em;font-style:normal;font-weight:400}.ca-portfolio__divider{background:linear-gradient(90deg,#4ecdc466,#0000);width:60%;max-width:400px;height:1px;margin:1.5rem 0 0}@font-face{font-family:Bank Gothic;src:url(/fonts/thesignature/BANKRUS.TTF)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:TheSignature;src:url(/fonts/thesignature/Thesignature.otf)format("opentype"),url(/fonts/thesignature/Thesignature.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.ca-mosaic__wrapper{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#4ecdc440 transparent;padding:1rem 0 2rem;overflow:auto hidden}.ca-mosaic__wrapper::-webkit-scrollbar{height:6px}.ca-mosaic__wrapper::-webkit-scrollbar-track{background:0 0}.ca-mosaic__wrapper::-webkit-scrollbar-thumb{background:#4ecdc433;border-radius:3px}.ca-mosaic__wrapper::-webkit-scrollbar-thumb:hover{background:#4ecdc466}.ca-mosaic{grid-template-rows:230px 230px;grid-template-columns:420px 300px 420px 300px;gap:12px;width:max-content;padding:0 3rem;display:grid}.ca-mosaic__card{cursor:none;color:inherit;border:1px solid #ffffff0f;border-radius:8px;text-decoration:none;transition:transform .6s cubic-bezier(.16,1,.3,1),box-shadow .5s,border-color .5s;display:block;position:relative;overflow:hidden}.ca-mosaic__card:hover{z-index:5;border-color:#4ecdc44d;transform:scale(1.03);box-shadow:0 30px 80px #000000b3,0 0 30px #4ecdc414}.ca-mosaic__card--pos-vb{grid-area:1/1/3}.ca-mosaic__card--pos-wb{grid-area:1/2}.ca-mosaic__card--pos-pmp{grid-area:2/2}.ca-mosaic__card--pos-vba{grid-area:1/3/3}.ca-mosaic__card--pos-lf{grid-area:1/4}.ca-mosaic__card--pos-bi{grid-area:2/4}.ca-mosaic__card-img{position:absolute;inset:0;overflow:hidden}.ca-mosaic__card-img>img{object-fit:cover;filter:grayscale()brightness(.75)contrast(1.1);width:100%;height:100%;transition:transform .8s cubic-bezier(.16,1,.3,1),filter .8s}.ca-mosaic__card:hover .ca-mosaic__card-img>img{filter:grayscale(.2)brightness(.95)contrast(1.05);transform:scale(1.05)}.ca-mosaic__placeholder{background:#0a0a0c;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;width:100%;height:100%;transition:transform .8s cubic-bezier(.16,1,.3,1);display:flex;position:relative;box-shadow:inset 0 1px #ffffff0a}.ca-mosaic__card:hover .ca-mosaic__placeholder{transform:scale(1.02)}.ca-mosaic__stack{z-index:1;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.4rem;padding:0 1.5rem;display:flex;position:relative}.ca-mosaic__tech-icon{opacity:.5;width:28px;height:28px;transition:opacity .5s,filter .5s}.ca-mosaic__card:hover .ca-mosaic__tech-icon{opacity:.95;filter:drop-shadow(0 0 6px #4ecdc44d)}.ca-mosaic__card--pos-vb .ca-mosaic__tech-icon,.ca-mosaic__card--pos-vba .ca-mosaic__tech-icon{width:32px;height:32px}.ca-mosaic__specialty{font-family:var(--font-heading);color:#fff9;text-align:center;z-index:1;max-width:320px;padding:0 2rem;font-size:.8rem;font-style:italic;font-weight:300;line-height:1.6;transition:color .5s;position:relative}.ca-mosaic__card:hover .ca-mosaic__specialty{color:#4ecdc4b3}.ca-mosaic__card--pos-vb .ca-mosaic__specialty,.ca-mosaic__card--pos-vba .ca-mosaic__specialty{max-width:400px;font-size:.88rem}.ca-mosaic__placeholder:after{content:"";pointer-events:none;background:linear-gradient(135deg,#0000 0%,#ffffff04 35%,#ffffff08 50%,#ffffff04 65%,#0000 100%);position:absolute;inset:0}.ca-mosaic__card-overlay{z-index:2;background:linear-gradient(#0000 0%,#0006 40%,#000000d9 100%);justify-content:space-between;align-items:flex-end;padding:2rem 1.5rem 1rem;display:flex;position:absolute;bottom:0;left:0;right:0}.ca-mosaic__card-overlay--center{text-align:center;background:#0009;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex;inset:0}.ca-mosaic__card-label{color:#fff;letter-spacing:.02em;white-space:nowrap;text-shadow:0 0 20px #ffffff14;font-family:TheSignature,Mr Dafoe,cursive;font-size:clamp(2rem,3.2vw,3.2rem);font-style:normal;font-weight:400;line-height:1;transition:color .4s,text-shadow .4s}.ca-mosaic__card:hover .ca-mosaic__card-label{color:#4ecdc4;text-shadow:0 0 30px #4ecdc433}.ca-mosaic__card--pos-vb .ca-mosaic__card-label,.ca-mosaic__card--pos-vba .ca-mosaic__card-label{font-size:clamp(2.2rem,3.5vw,3.5rem)}.ca-mosaic__card-year{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-text-dim);opacity:.5;font-size:.55rem}.ca-mosaic__card-caption{opacity:0;z-index:2;justify-content:space-between;align-items:center;padding:1rem 1.5rem;transition:opacity .35s,transform .35s;display:flex;position:absolute;top:0;left:0;right:0;transform:translateY(-6px)}.ca-mosaic__card:hover .ca-mosaic__card-caption{opacity:1;transform:translateY(0)}.ca-mosaic__card-type{font-family:"Bank Gothic", var(--font-mono);letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-dim);opacity:.6;font-size:.6rem}.ca-mosaic__card-arrow{color:#4ecdc4;opacity:.5;font-size:1rem;transition:opacity .3s,transform .3s}.ca-mosaic__card:hover .ca-mosaic__card-arrow{opacity:1;transform:translate(4px)}.ca-mosaic__card-arrow-lg{color:var(--color-neon-gold);opacity:.4;font-size:2rem;transition:opacity .4s,transform .4s}.ca-mosaic__card:hover .ca-mosaic__card-arrow-lg{opacity:1;transform:translate(6px)}.ca-packages{background:var(--color-bg);justify-content:center;align-items:center;height:100%;padding:2.5rem 3rem;display:flex}.ca-packages__content{text-align:left;width:100%;max-width:900px;margin:0 auto}.ca-packages__eyebrow{font-family:var(--font-mono);letter-spacing:.35em;text-transform:uppercase;color:#4ecdc4;opacity:.5;margin-bottom:1.2rem;font-size:.55rem}.ca-packages__title{font-family:var(--font-heading);letter-spacing:.02em;color:var(--color-text);font-size:clamp(2.2rem,5vw,3.8rem);font-style:italic;font-weight:300}.ca-packages__title--script{font-family:TheSignature,Mr Dafoe,cursive;font-size:1.15em;font-style:normal;font-weight:400}.ca-packages__divider{background:linear-gradient(90deg,#4ecdc466,#0000);width:60%;max-width:400px;height:1px;margin:1.5rem 0 4rem}.ca-packages__list{flex-direction:column;display:flex}.ca-package-item{cursor:none;border-top:1px solid #ffffff0f;align-items:center;gap:2rem;padding:1.5rem 0;transition:background .4s;display:flex}.ca-package-item:last-child{border-bottom:1px solid #ffffff0f}.ca-package-item:hover{background:#ffffff04}.ca-package-item__number{font-family:var(--font-mono);color:#4ecdc4;opacity:.4;flex-shrink:0;width:2.5rem;font-size:.7rem}.ca-package-item__info{flex:1;min-width:0}.ca-package-item__title{font-family:var(--font-heading);color:var(--color-text);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:300;line-height:1.2;transition:color .3s}.ca-package-item:hover .ca-package-item__title{color:#fff}.ca-package-item__price{font-family:var(--font-heading);color:#4ecdc4;margin-top:.3rem;font-size:clamp(1rem,1.5vw,1.2rem);font-weight:300}.ca-package-item__desc{font-family:var(--font-heading);color:var(--color-text-dim);opacity:.5;text-align:right;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-style:italic}.ca-packages__actions{gap:1.2rem;margin-top:4rem;display:flex}.ca-packages__actions .cta-button{color:#4ecdc4;border-color:#4ecdc44d}.ca-packages__actions .cta-button:hover{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4;box-shadow:0 0 20px #4ecdc414}.ca-cta{background:var(--color-matte);flex-direction:column;gap:3rem;height:100%}#caCtaCanvas{z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.ca-cta__content{z-index:1;text-align:center;position:relative}.ca-cta__title{font-family:var(--font-heading);letter-spacing:.02em;color:var(--color-text);font-size:clamp(2.2rem,5vw,3.8rem);font-style:italic;font-weight:300}.ca-cta__title--script{font-family:TheSignature,Mr Dafoe,cursive;font-size:1.15em;font-style:normal;font-weight:400}.ca-cta__eyebrow{font-family:var(--font-mono);letter-spacing:.35em;text-transform:uppercase;color:#4ecdc4;opacity:.5;margin-bottom:1.5rem;font-size:.55rem}.ca-cta__actions{justify-content:center;gap:1.2rem;margin-top:2rem;display:flex}.ca-cta__links{justify-content:center;align-items:center;gap:.75rem;margin-top:3rem;display:flex}.cal-modal{flex-direction:column;width:95%;max-width:650px;max-height:90vh;padding:0;display:flex;overflow:hidden}.cal-modal__header{border-bottom:1px solid #1c1c20;padding:2rem 2rem 1rem}.cal-modal__embed{flex:1;min-height:0;position:relative}.cal-modal__iframe{background:var(--color-matte);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border:none;width:100%;height:560px}@media (width<=768px){.cal-modal__iframe{height:480px}}.ca-portfolio__github{text-align:center;z-index:2;padding:2rem 0 0;position:relative}.ca-portfolio__github-link{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-dim);opacity:.4;cursor:none;font-size:.6rem;transition:opacity .4s,color .4s}.ca-portfolio__github-link:hover{opacity:1;color:var(--color-neon-silver)}@media (width<=1200px){.ca-mosaic{grid-template-rows:220px 220px;grid-template-columns:380px 280px 380px 280px;gap:12px}}@media (width<=1024px){.ca-package-item{flex-direction:column;align-items:flex-start;gap:.8rem}.ca-package-item__desc{text-align:left}.ca-mosaic{grid-template-rows:200px 200px;grid-template-columns:340px 260px 340px 260px;gap:10px;padding:0 2rem}}@media (width<=768px){.ca-hero__title{font-size:clamp(2.5rem,12vw,5rem)}.ca-packages__actions{flex-direction:column;align-items:flex-start}.ca-portfolio__header{padding:1.5rem 1.5rem 1rem}.ca-mosaic__wrapper{padding:1rem 0 1.5rem}.ca-mosaic{grid-template-rows:180px 180px;grid-template-columns:300px 240px 300px 240px;gap:8px;padding:0 1.5rem}.ca-mosaic__card-label{font-size:.95rem}.ca-mosaic__tech-icon{width:20px;height:20px}.ca-mosaic__specialty{padding:0 1rem;font-size:.7rem}.ca-packages{padding:2rem 1.5rem}.ca-cta__actions{flex-direction:column;align-items:center}.ca-cta__links{flex-wrap:wrap;justify-content:center}}
