*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#fff;color:#0f172a;line-height:1.6}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}h1{font-size:3rem}h2{font-size:2rem}h3{font-size:1.5rem}a{color:#2563eb;text-decoration:none}a:hover{color:#1d4ed8}img{max-width:100%;height:auto;display:block}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.section{padding:4rem 0}.sharp{border-radius:0!important}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.btn{display:inline-block;padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;font-weight:600;border:none;cursor:pointer;transition:background-color .2s ease}.btn:hover{background-color:#1d4ed8;color:#fff}.btn--secondary{background-color:#dc2626}.btn--secondary:hover{background-color:#b91c1c}.btn--outline{background-color:transparent;border:2px solid #2563eb;color:#2563eb}.btn--outline:hover{background-color:#2563eb;color:#fff}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.hero-background[data-v-49c1e8c3]{position:relative;background:linear-gradient(135deg,#100013,#1b0015);height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero[data-v-49c1e8c3]{position:relative;padding:6rem 1.5rem;height:50vh;width:100%;display:flex;align-items:flex-start;justify-content:center}.hero .banner[data-v-49c1e8c3]{position:absolute;inset:-15px;background:url(/img/ban.8ceb5b92.png) 50%/cover no-repeat;transition:transform .3s ease-out;filter:blur(2px)}.hero img[data-v-49c1e8c3]{-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.hero .content[data-v-49c1e8c3]{position:relative;z-index:1;margin:0 auto;display:flex;align-items:flex-start;justify-content:center;gap:4rem}.hero .tom .image-shadow[data-v-49c1e8c3]{position:absolute;filter:blur(14px) brightness(.5)}.hero .tom .image-shadow[data-v-49c1e8c3],.hero .tom .image[data-v-49c1e8c3]{-o-object-fit:contain;object-fit:contain;height:70vh;transition:transform .3s ease-out}.hero .text[data-v-49c1e8c3]{flex:1;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;transition:transform .3s ease-out}.hero .text .title[data-v-49c1e8c3]{margin-bottom:.5rem;color:#fff;font-size:calc(1.2vh + 1.5vw)}.hero .text .subtitle[data-v-49c1e8c3]{color:#fff;margin-bottom:1rem;font-family:consolas,monospace;font-style:italic;font-size:calc(.5vh + .5vw)}.hero .text .description[data-v-49c1e8c3]{font-size:1.1rem;color:#fff;font-size:calc(.9vh + .9vw)}@media(max-width:768px){.hero[data-v-49c1e8c3]{padding:3rem 1rem}.hero .content[data-v-49c1e8c3]{flex-direction:column;align-items:center;gap:2rem}.hero .tom .image-shadow[data-v-49c1e8c3],.hero .tom .image[data-v-49c1e8c3]{height:25vh}.hero .text[data-v-49c1e8c3]{text-align:center;transform:translateX(0) scale(1.5) skewY(-3deg) skewX(-3deg)!important}}.category-section[data-v-f8a5af34]{padding:3rem 0}.category-section__header[data-v-f8a5af34]{display:flex;align-items:baseline;gap:1rem;margin-bottom:2rem;padding-bottom:.5rem;border-bottom:3px solid #2563eb}.category-section__title[data-v-f8a5af34]{text-transform:capitalize}.category-section__count[data-v-f8a5af34]{color:#64748b;font-size:.9rem}.category-section__content[data-v-f8a5af34]{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.5rem}@media(max-width:768px){.category-section__content[data-v-f8a5af34]{grid-template-columns:1fr}}.project-card[data-v-5d716813]{background-color:#fff;cursor:pointer;transition:transform .2s ease,border-color .2s ease;overflow:hidden}.project-card[data-v-5d716813]:hover{transform:rotateX(10deg) rotateY(-4deg) scale(1.05)}.project-card__image-wrapper[data-v-5d716813]{width:100%;height:200px;background-color:#e2e8f0}.project-card__image[data-v-5d716813]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-card__image[data-v-5d716813]{transform:scale(1.03)}.project-card__image-placeholder[data-v-5d716813]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-size:3rem;font-weight:700}.project-card__content[data-v-5d716813]{padding:1.25rem}.project-card__logo[data-v-5d716813]{position:absolute;bottom:-50px;right:30px;width:100px;height:100px;-o-object-fit:contain;object-fit:contain;background-color:#fff;padding:.5rem;border-radius:50%;border-top:2px solid #e2e8f0}.project-card__team-icon[data-v-5d716813]{position:absolute;top:10px;right:10px;width:50px;height:50px;-o-object-fit:contain;object-fit:contain;border-radius:50%}.project-card__image-wrapper[data-v-5d716813]{position:relative;border:2px solid #e2e8f0}.project-card__title[data-v-5d716813]{font-size:1.25rem;margin-bottom:.5rem;color:#0f172a;white-space:pre-wrap}.project-card__description[data-v-5d716813]{color:#64748b;font-size:.95rem;line-height:1.5;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home[data-v-32dcc808]{min-height:100vh}.social-links[data-v-32dcc808]{position:absolute;padding:1rem;right:1rem;display:flex;justify-content:center;gap:2rem;z-index:1000;transition:position .3s ease}.social-links.fixed[data-v-32dcc808]{position:fixed;top:1rem!important}.social-button[data-v-32dcc808]{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background-color:#2d3748;color:#fff;transition:all .3s ease;text-decoration:none;box-shadow:0 4px 15px rgba(0,0,0,.2)}.social-button svg[data-v-32dcc808]{width:24px;height:24px}.social-button[data-v-32dcc808]:hover{transform:translateY(-4px) scale(1.1);box-shadow:0 8px 25px rgba(0,0,0,.3)}.social-button.github[data-v-32dcc808]:hover{background-color:#1a202c;color:#fff}.social-button.linkedin[data-v-32dcc808]:hover{background-color:#0a66c2;color:#fff}.empty-state[data-v-32dcc808]{text-align:center;padding:4rem 0;color:#64748b;font-size:1.1rem}.image-gallery[data-v-4768de42]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.image-gallery__item[data-v-4768de42]{cursor:pointer;overflow:hidden;border:2px solid #e2e8f0;transition:border-color .2s ease}.image-gallery__item[data-v-4768de42]:hover{border-color:#2563eb}.image-gallery__item img[data-v-4768de42]{width:100%;height:200px;-o-object-fit:cover;object-fit:cover;transition:transform .3s ease}.image-gallery__item:hover img[data-v-4768de42]{transform:scale(1.05)}.lightbox[data-v-4768de42]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;z-index:1000}.lightbox__image[data-v-4768de42]{max-width:90%;max-height:90%;-o-object-fit:contain;object-fit:contain}.lightbox__close[data-v-4768de42]{position:absolute;top:1rem;right:1.5rem;background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;line-height:1;padding:.5rem;transition:color .2s ease}.lightbox__close[data-v-4768de42]:hover{color:#2563eb}.lightbox__nav[data-v-4768de42]{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:4rem;cursor:pointer;padding:1rem;transition:color .2s ease}.lightbox__nav[data-v-4768de42]:hover{color:#2563eb}.lightbox__nav--prev[data-v-4768de42]{left:1rem}.lightbox__nav--next[data-v-4768de42]{right:1rem}.project-detail[data-v-95e4d35e]{min-height:100vh}.project-detail__header[data-v-95e4d35e]{background-size:cover;background-position:50%;padding:3rem 0 4rem;position:relative}.project-detail__banner-overlay[data-v-95e4d35e]{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(248,250,252,.55);backdrop-filter:blur(50px);z-index:0}.project-detail__header-content[data-v-95e4d35e]{position:relative;z-index:1}.project-detail__title-section[data-v-95e4d35e]{display:flex;gap:2rem;align-items:flex-start;margin-bottom:2rem}.project-detail__logo[data-v-95e4d35e]{width:100px;height:100px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.project-detail__back[data-v-95e4d35e]{background:none;border:none;color:#2563eb;font-size:1rem;cursor:pointer;padding:0;margin-bottom:2rem;display:inline-block}.project-detail__back[data-v-95e4d35e]:hover{color:#1d4ed8}.project-detail__category[data-v-95e4d35e]{display:inline-block;background-color:#2563eb;color:#fff;padding:.25rem .75rem;font-size:.85rem;font-weight:600;text-transform:uppercase;margin-left:1rem;vertical-align:middle}.project-detail__title[data-v-95e4d35e]{font-size:2.5rem;margin-bottom:1rem}.project-detail__description[data-v-95e4d35e]{font-size:1.2rem;color:#64748b;max-width:700px;white-space:pre-wrap;word-wrap:break-word}.project-detail__meta[data-v-95e4d35e]{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:1.5rem}.project-detail__tech[data-v-95e4d35e]{display:flex;flex-wrap:wrap;gap:.5rem}.project-detail__team-icon[data-v-95e4d35e]{width:40px;height:40px;-o-object-fit:contain;object-fit:contain}.project-detail__tech-tag[data-v-95e4d35e]{background-color:#e2e8f0;padding:.25rem .75rem;font-size:.85rem;font-weight:500}.project-detail__links[data-v-95e4d35e]{display:flex;gap:.75rem}.project-detail__content[data-v-95e4d35e]{padding-top:3rem;padding-bottom:1rem;font-size:1.1rem;line-height:1.8;max-width:800px}.project-detail__content p[data-v-95e4d35e]{white-space:pre-wrap}.project-detail__gallery[data-v-95e4d35e]{padding:2rem 0 4rem}.project-detail__gallery h2[data-v-95e4d35e]{margin-bottom:1.5rem}.project-not-found[data-v-95e4d35e]{min-height:100vh;display:flex;align-items:center;text-align:center}.project-not-found h1[data-v-95e4d35e]{margin-bottom:1rem}.project-not-found p[data-v-95e4d35e]{color:#64748b;margin-bottom:2rem}@media(max-width:768px){.project-detail__title[data-v-95e4d35e]{font-size:2rem}.project-detail__meta[data-v-95e4d35e]{flex-direction:column;align-items:flex-start}.project-detail__title-section[data-v-95e4d35e]{flex-direction:column;align-items:center;text-align:center}.project-detail__logo[data-v-95e4d35e]{width:80px;height:80px}}