@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@300;400;500;600&display=swap);:root{--color-prussian-blue:#0f2740;--color-tech-blue:#2a5caa;--color-bronze-spice:#c65a1e;--color-grey-olive:#85b7d8;--color-white-smoke:#f4f4f4;--color-primary:#2a5caa;--color-secondary:#c65a1e;--color-accent:#c65a1e;--color-background:#f4f4f4;--color-background-alt:#f4f4f4;--color-text:#0f2740;--color-text-light:#85b7d8;--color-border:#85b7d8;--color-hover:#2a5caa;--font-primary:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-secondary:"Source Code Pro","Monaco","Consolas",monospace;--font-heading-weight:500;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #00000026;--shadow-lg:0 8px 24px #0003;--transition-fast:0.2s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease;--z-modal:1000;--z-overlay:999;--z-header:100;--z-content:10}*{box-sizing:border-box;margin:0;padding:0}html{background:#0000!important;overflow-x:hidden;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;background:var(--color-background)!important;color:var(--color-text)!important;font-family:var(--font-primary)!important;line-height:1.6!important;overflow:visible!important}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:500}.App{background:#0000!important}code{font-family:Source Code Pro,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.gallery-main-image,.maximized-image-popup,.portfolio-container,.project-tile{-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px;transform:translateZ(0);will-change:transform}.about-btn,.contact-btn{transition:transform .2s ease,opacity .2s ease;will-change:transform}.about-btn:hover,.contact-btn:hover{transform:translateY(-2px) translateZ(0)}img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;transform:translateZ(0)}.project-tile-img{contain:layout style paint}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.portfolio-container{contain:layout style}.about-modal-content,.project-modal-container{transform:translateZ(0);will-change:transform,opacity}.dragging,.dragging *{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.gallery-main,.maximized-image-popup{touch-action:pan-x pan-y pinch-zoom;will-change:transform}.project-tile{background:#0000;border:none;box-shadow:none;cursor:pointer;overflow:hidden;position:absolute;transition:transform var(--transition-fast);will-change:transform,left,top;z-index:20}.project-tile,.project-tile-img{border-radius:8px;transform:translateZ(0)}.project-tile-img{border:none;display:block;object-fit:cover;outline:none;transition:transform var(--transition-normal),filter var(--transition-normal)}.project-tile:hover{box-shadow:0 6px 16px #15232040;transform:translateY(-1px) translateZ(0)}.project-tile:hover .project-tile-img{filter:brightness(1.02);transform:scale(1.01) translateZ(0)}.project-tile-overlay{align-items:flex-start;color:var(--color-white-smoke);display:flex;flex-direction:column;font-weight:600;gap:6px;inset:auto 10px 10px 10px;opacity:0;padding:0;pointer-events:none;position:absolute;text-align:left;transform:translateY(14px);transition:all .25s cubic-bezier(.4,0,.2,1);z-index:10}.project-tile.show-overlay .project-tile-overlay,.project-tile:hover .project-tile-overlay{opacity:1;transform:translateY(0)}.project-tile-title{background:#083645e6;border-radius:10px;box-shadow:0 2px 6px #17243f4d;font-size:.72rem;font-weight:700;letter-spacing:-.01em;line-height:1.2;max-width:85%;padding:4px 7px}.project-tile-title,.project-tile-year{color:var(--color-white-smoke);display:inline-block;margin:0;word-break:break-word}.project-tile-year{background:#008affe6;border-radius:8px;box-shadow:0 1px 3px #0003;font-size:.58rem;font-weight:600;letter-spacing:.05em;max-width:70%;padding:2px 6px;text-align:left;text-transform:uppercase}.project-tile{position:relative}@media (max-width:768px){.project-tile{min-height:44px;min-width:44px}.project-tile-title{font-size:.68rem;max-width:82%;padding:3px 7px}.project-tile-year{font-size:.52rem;max-width:65%;padding:2px 6px}}@media (hover:none) and (pointer:coarse){.project-tile:hover .project-tile-img{transform:none}.project-tile-overlay{opacity:0;transform:translateY(14px)}}@supports not ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.project-tile-year{background:var(--color-secondary)}}.modal-backdrop{align-items:center;animation:fadeIn .3s ease-out forwards;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overscroll-behavior:contain;padding:var(--spacing-lg);position:fixed;right:0;top:0;touch-action:auto;z-index:9999}.modal-container{-webkit-overflow-scrolling:touch;animation:modalSlideIn .3s ease-out forwards;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 20px 40px #17243f26;max-height:90vh;max-width:1000px;overflow-y:auto;overscroll-behavior:contain;position:relative;touch-action:pan-y;transform:scale(.9) translateY(20px);width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg)}.modal-title{color:var(--color-prussian-blue);font-family:var(--font-heading);font-size:1.5rem;font-weight:800;font-weight:700;margin:0}.modal-close-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:50%;box-shadow:0 4px 12px #08364526;color:var(--color-white-smoke);cursor:pointer;display:flex;height:44px;justify-content:center;position:absolute;right:var(--spacing-lg);top:var(--spacing-lg);touch-action:manipulation;transition:all var(--transition-normal);user-select:none;-webkit-user-select:none;width:44px;z-index:10}.modal-close-btn:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #057bc159;transform:translateY(-2px)}.modal-close-btn:hover svg{color:var(--color-white-smoke)}.modal-close-btn:focus{outline:2px solid var(--color-accent);outline-offset:2px}.modal-content{grid-gap:60px;-webkit-overflow-scrolling:touch;display:grid;gap:60px;grid-template-columns:1fr 1fr;overflow-y:auto;overscroll-behavior:contain;padding:var(--spacing-xl);touch-action:pan-y}.contact-info{display:flex;flex-direction:column;gap:var(--spacing-xl)}.contact-intro{color:var(--color-tech-blue);font-family:var(--font-primary);font-weight:400;line-height:1.6;margin:0}.contact-methods{display:flex;flex-direction:column;gap:var(--spacing-lg)}.contact-method{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--spacing-md);padding:var(--spacing-md);transition:all var(--transition-fast)}.contact-method:hover{background:#0000;border:1px solid var(--color-tech-blue);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.contact-method.clickable{-webkit-tap-highlight-color:transparent;border:1px solid #0000;cursor:pointer;touch-action:manipulation;transition:all var(--transition-fast)}.contact-method.clickable:hover{background:#0000;border:1px solid var(--color-tech-blue);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.contact-icon{align-items:center;background:var(--color-prussian-blue);border-radius:var(--radius-md);color:var(--color-white-smoke);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.contact-details{display:flex;flex-direction:column;gap:2px}.contact-label{color:var(--color-prussian-blue);font-size:.875rem;font-weight:700}.contact-label,.contact-value{font-family:var(--font-primary)}.contact-value{color:var(--color-tech-blue);font-size:1rem;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-row{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{font-size:.875rem}.form-input,.form-label,.form-textarea{color:var(--color-text);font-family:var(--font-primary);font-weight:400}.form-input,.form-textarea{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;padding:var(--spacing-md);transition:all var(--transition-fast)}.form-input:focus,.form-textarea:focus{background:var(--color-background);border-color:var(--color-bronze-spice);box-shadow:0 0 0 3px #c65a1e1a;color:var(--color-text);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-light)}.form-input:focus::placeholder,.form-textarea:focus::placeholder{color:#fffbf5b3}.form-textarea{font-family:var(--font-primary);min-height:120px;resize:vertical}.form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-lg)}.btn-primary,.btn-secondary{-webkit-tap-highlight-color:transparent;border:none;border-radius:var(--radius-md);font-family:var(--font-primary);font-size:1rem;font-weight:400;padding:var(--spacing-md) var(--spacing-xl);touch-action:manipulation;user-select:none;-webkit-user-select:none}.btn-primary,.btn-secondary{cursor:pointer;transition:all var(--transition-fast)}.btn-primary{align-items:center;animation:smoothPulse 4s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:var(--radius-lg);box-shadow:0 4px 12px #08364526,0 0 4px var(--color-prussian-blue);color:var(--color-white-smoke);display:flex;font-family:var(--font-heading);font-size:.9rem;font-weight:600;gap:var(--spacing-sm);justify-content:center;padding:var(--spacing-md) var(--spacing-lg)}.btn-primary:hover{background:var(--color-grey-olive);border-color:var(--color-grey-olive);box-shadow:0 8px 24px #85b7d859,0 0 8px var(--color-grey-olive),0 0 12px var(--color-grey-olive),0 0 16px #85b7d866;color:var(--color-prussian-blue);transform:translateY(-2px)}.btn-primary:focus{outline:2px solid var(--color-accent);outline-offset:2px}.btn-secondary{background:#0000;border:1px solid var(--color-primary);color:var(--color-primary)}.btn-secondary:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-background)}.btn-secondary:focus{outline:2px solid var(--color-secondary);outline-offset:2px}@keyframes modalSlideIn{0%{transform:scale(.9) translateY(20px)}to{transform:scale(1) translateY(0)}}.success-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.success-message{animation:successSlideIn .4s ease-out forwards;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 20px 40px #15232026;max-width:400px;padding:var(--spacing-xxl);text-align:center;transform:scale(.8) translateY(20px);width:90%}.success-icon{animation:successIconBounce .6s ease-out .2s both;color:var(--color-accent);margin-bottom:var(--spacing-lg)}.success-title{animation:successTextSlide .5s ease-out .3s both;color:var(--color-primary);font-size:1.5rem;font-weight:600;margin:0 0 var(--spacing-md) 0}.success-text{animation:successTextSlide .5s ease-out .4s both;color:var(--color-text-light);line-height:1.5;margin:0}@keyframes successSlideIn{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes successIconBounce{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes successTextSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){.modal-container{max-width:900px}.modal-content{gap:40px}}@media (max-width:768px){.modal-backdrop{align-items:flex-start;overflow:hidden;padding:0}.modal-container{-webkit-overflow-scrolling:touch;border-radius:0;display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow-x:hidden;overflow-y:scroll;overscroll-behavior-y:contain}.modal-header{background:var(--color-background);flex-shrink:0;padding:16px 16px 12px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-title{font-size:1.3rem}.modal-close-btn{height:48px;right:12px;top:12px;width:48px}.modal-content{-webkit-overflow-scrolling:touch;flex:1 1;gap:24px;grid-template-columns:1fr;overflow-y:auto;padding:16px 16px calc(140px + env(safe-area-inset-bottom, 0px));touch-action:pan-y}.contact-intro{font-size:.95rem}.contact-methods{gap:12px}.contact-method{min-height:60px;padding:12px}.contact-icon{height:44px;width:44px}.form-row{grid-template-columns:1fr}.form-group{gap:6px}.form-label{font-size:.85rem}.form-input,.form-textarea{font-size:16px;padding:12px;touch-action:auto}.form-textarea{min-height:100px}.form-actions{flex-direction:column;gap:12px;margin-bottom:60px;margin-top:16px}.btn-primary{font-size:1.05rem;justify-content:center;min-height:52px;padding:16px;width:100%}.btn-secondary{display:none}}@media (max-width:480px){.modal-backdrop{padding:0}.modal-header{padding:12px 12px 10px}.modal-title{font-size:1.2rem}.modal-close-btn{right:10px;top:10px}.modal-content{padding:12px 12px calc(150px + env(safe-area-inset-bottom, 0px))}.contact-intro{font-size:.9rem}.contact-method{min-height:56px;padding:10px}.contact-value{font-size:.9rem;white-space:normal;word-break:break-word}.form-input,.form-textarea{padding:10px;touch-action:auto}}.modal-backdrop:focus-within{outline:none}@media (prefers-contrast:high){.modal-container{border:2px solid var(--color-primary)}.form-input,.form-textarea{border:2px solid var(--color-border)}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary)}}@media (prefers-reduced-motion:reduce){.btn-primary,.btn-secondary,.contact-method,.modal-backdrop,.modal-close-btn,.modal-container,.success-icon,.success-message,.success-overlay,.success-text,.success-title{animation:none;transition:none}}.project-modal-backdrop{align-items:center;animation:projectModalFadeIn .4s ease-out forwards;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overflow:hidden;padding:var(--spacing-lg);position:fixed;right:0;top:0;touch-action:auto;z-index:10000}.project-modal-container{animation:projectModalSlideIn .4s ease-out forwards;border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 20px 40px #17243f26;flex-direction:column;height:90vh;max-height:90vh;max-width:1200px;overflow:auto;overscroll-behavior:contain;position:relative;touch-action:pan-y;transform:scale(.85) translateY(40px);width:100%}.project-modal-container,.project-modal-header{background:var(--color-background);display:flex}.project-modal-header{align-items:flex-start;border-bottom:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;justify-content:space-between;padding:var(--spacing-xl) calc(var(--spacing-xl) + 56px) var(--spacing-lg) var(--spacing-xl)}.project-header-info{flex:1 1}.project-modal-title{color:var(--color-prussian-blue);font-family:var(--font-heading);font-size:2rem;font-weight:500;line-height:1.2;margin:0 0 var(--spacing-xs) 0}.project-modal-subtitle{color:var(--color-prussian-blue);font-family:var(--font-primary);font-size:1.1rem;font-weight:400;line-height:1.4;margin:0 0 var(--spacing-sm) 0}.project-meta{align-items:center;display:flex;gap:var(--spacing-md)}.project-year{background:var(--color-secondary);border-radius:var(--radius-sm);box-shadow:0 1px 4px #0003;color:var(--color-background);font-family:var(--font-primary);font-size:.7rem;font-weight:400;letter-spacing:.05em;padding:2px var(--spacing-xs);text-transform:uppercase}.project-client{color:var(--color-prussian-blue);font-size:.875rem;font-weight:500}.project-client[data-award=true]{font-weight:700}.project-modal-close-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:50%;box-shadow:0 4px 12px #08364526;color:var(--color-white-smoke);cursor:pointer;display:flex;height:44px;justify-content:center;position:absolute;right:var(--spacing-md);top:var(--spacing-md);touch-action:manipulation;transition:all var(--transition-normal);user-select:none;-webkit-user-select:none;width:44px;z-index:10}.project-modal-close-btn:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #057bc159;transform:translateY(-2px)}.project-modal-close-btn:hover svg{color:var(--color-white-smoke)}.project-modal-close-btn:focus{outline:2px solid var(--color-accent);outline-offset:2px}.project-modal-content{grid-gap:var(--spacing-xxl);-webkit-overflow-scrolling:touch;display:grid;flex:1 1;gap:var(--spacing-xxl);grid-template-columns:1fr 1fr;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:var(--spacing-xl);touch-action:pan-y}.project-gallery{align-self:start;display:flex;flex-direction:column;gap:var(--spacing-md);height:-webkit-fit-content;height:fit-content;margin-top:0;position:-webkit-sticky;position:sticky;top:0}.gallery-main{background:#0000;border-radius:var(--radius-lg);border-radius:12px;overflow:hidden;position:relative}.gallery-main-image{border-radius:12px;display:block;height:380px;max-height:380px;object-fit:contain;transition:transform var(--transition-normal);width:100%}.project-gallery .optimized-image-wrapper{border-radius:12px!important}.gallery-main-image[src$=".gif"],.gallery-main-image[src*=".gif"]{object-fit:cover;object-position:center}.gallery-main-image:hover{transform:scale(1.02)}.maximized-image-popup{animation:imagePopupFadeIn .3s ease-out;border-radius:var(--radius-lg);box-shadow:0 20px 40px #00000080;cursor:pointer;display:block!important;height:auto;left:50%;max-height:90vh;max-width:90vw;object-fit:contain;position:fixed;top:50%;transform:translate(-50%,-50%);width:auto;z-index:15001!important}.maximized-image-popup[src$=".gif"],.maximized-image-popup[src*=".gif"]{border-radius:0;height:100vh;max-height:100vh;max-width:100vw;object-fit:cover;width:100vw}.maximized-image-popup:hover{transform:translate(-50%,-50%) scale(1.01)}@keyframes imagePopupFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.maximized-image-backdrop{animation:backdropFadeIn .3s ease-out;background:#000c;cursor:pointer;display:block!important;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:15000!important}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes backdropFadeOut{0%{opacity:1}to{opacity:0}}@keyframes imagePopupFadeOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}.gallery-nav-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;opacity:0;position:absolute;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all var(--transition-fast);user-select:none;-webkit-user-select:none;width:40px;z-index:10}.gallery-main:hover .gallery-nav-btn{opacity:1}.gallery-nav-btn:hover{background:#000000e6;transform:translateY(-50%) scale(1.1)}.gallery-nav-prev{left:var(--spacing-md)}.gallery-nav-next{right:var(--spacing-md)}.gallery-thumbnails{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:flex-start}.gallery-thumbnail{-webkit-tap-highlight-color:transparent;background:#0000;border:none;border-radius:var(--radius-lg);cursor:pointer;flex-shrink:0;height:60px;object-fit:cover;opacity:.7;touch-action:manipulation;transition:all var(--transition-fast);width:80px}.gallery-thumbnail:hover{opacity:.9;transform:scale(1.05)}.gallery-thumbnail.active{opacity:1;transform:scale(1.05)}.project-details{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:var(--spacing-xl);max-height:none;overflow-x:hidden;overflow-y:auto;padding-right:var(--spacing-sm);touch-action:pan-y}.project-details::-webkit-scrollbar{width:8px}.project-details::-webkit-scrollbar-track{background:var(--color-background-alt);border-radius:4px}.project-details::-webkit-scrollbar-thumb{background:var(--color-grey-olive);border-radius:4px}.project-details::-webkit-scrollbar-thumb:hover{background:var(--color-tech-blue)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.project-tag{background:var(--color-tech-blue);border-radius:var(--radius-md);box-shadow:0 2px 4px #057bc11a;color:var(--color-white-smoke);font-family:var(--font-primary);font-size:.85rem;font-weight:400;padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-fast)}.project-tag:hover{background:var(--color-bronze-spice);box-shadow:0 4px 8px #c65a1e4d;color:var(--color-white-smoke);transform:translateY(-1px)}.project-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.project-section+.project-section{margin-top:var(--spacing-xl)}.section-title{align-items:center;color:var(--color-prussian-blue);display:flex;font-family:var(--font-heading);font-size:1.25rem;font-weight:500;gap:var(--spacing-sm);margin:0 0 var(--spacing-md) 0}.section-title:before{background:var(--color-secondary);border-radius:2px;content:"";height:20px;width:4px}.project-description,.project-text{color:var(--color-text);font-family:var(--font-primary);font-weight:400;line-height:1.6;margin:0 0 var(--spacing-md) 0}.project-section>.project-description:last-child,.project-section>.project-text:last-child{margin-bottom:0}.technologies-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.technology-item{background:var(--color-accent);border-radius:var(--radius-sm);color:var(--color-primary);cursor:default;font-family:var(--font-primary);font-size:.875rem;font-weight:400;padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-fast)}.technology-item:hover{background:var(--color-secondary);box-shadow:0 4px 8px #1877734d;color:var(--color-background);transform:translateY(-1px)}.testimonial-section{background:var(--color-hover);border-left:4px solid var(--color-accent);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.testimonial{margin:0}.testimonial-text{color:var(--color-text);font-size:1.1rem;font-style:italic;line-height:1.6;margin:0 0 var(--spacing-md) 0}.testimonial-author{display:flex;flex-direction:column;font-style:normal;gap:2px}.author-name{color:var(--color-primary);font-size:.95rem;font-weight:600}.author-role{color:var(--color-prussian-blue);font-size:.875rem}.project-links{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.project-link{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);display:inline-flex;font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;touch-action:manipulation;transition:all var(--transition-fast)}.project-link.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-primary)}.project-link:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-link.primary:hover{background:#e55a5a}.project-link:focus{outline:2px solid var(--color-accent);outline-offset:2px}@keyframes projectModalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes projectModalSlideIn{0%{transform:scale(.85) translateY(40px)}to{transform:scale(1) translateY(0)}}@media (max-width:1024px){.project-modal-container{max-height:95vh;max-width:95vw}.gallery-main-image{height:340px;max-height:340px}.maximized-image-popup{height:auto;max-height:95vh;max-width:95vw;width:auto}.project-modal-content{gap:var(--spacing-xl)}.project-modal-title{font-size:1.75rem}}@media (max-width:768px){.project-modal-backdrop{padding:var(--spacing-md)}.project-modal-container{max-height:100vh;overflow:auto}.gallery-main-image{height:260px;max-height:260px}.maximized-image-popup{height:auto;max-height:98vh;max-width:98vw;width:auto}.project-modal-header{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg)}.project-modal-title{font-size:1.5rem}.project-modal-content{gap:var(--spacing-lg);grid-template-columns:1fr;height:auto;overflow:visible;padding:var(--spacing-lg)}.gallery-thumbnails{grid-template-columns:repeat(4,1fr)}.gallery-nav-btn{opacity:1}.gallery-nav-btn,.project-modal-close-btn{height:48px;width:48px}.gallery-thumbnail{height:52px;width:70px}.project-links{flex-direction:column}.project-link{justify-content:center;min-height:44px}.project-details{max-height:none;overflow:visible}.project-gallery{align-self:stretch;height:auto;position:relative;top:auto}}@media (max-width:480px){.project-modal-backdrop{padding:var(--spacing-sm)}.project-modal-content,.project-modal-header{padding:var(--spacing-md)}.project-modal-title{font-size:1.25rem}.project-meta{align-items:flex-start;flex-direction:column;gap:var(--spacing-sm)}.gallery-thumbnails{grid-template-columns:repeat(3,1fr)}.gallery-thumbnail{height:60px}}@media (prefers-contrast:high){.project-modal-container{border:2px solid var(--color-primary)}.project-link{border:2px solid var(--color-border)}}@media (prefers-reduced-motion:reduce){.gallery-main-image,.gallery-thumbnail,.project-link,.project-modal-backdrop,.project-modal-close-btn,.project-modal-container{animation:none;transition:none}}.project-body-text{margin-top:0}.body-text-content{color:var(--color-text);font-size:16px;line-height:1.7;margin-bottom:var(--spacing-xl)}.body-text-content h1,.body-text-content h2,.body-text-content h3,.body-text-content h4,.body-text-content h5,.body-text-content h6{color:var(--color-prussian-blue);font-family:var(--font-heading);font-weight:500;margin:var(--spacing-xl) 0 var(--spacing-md) 0}.body-text-content>h1:first-child,.body-text-content>h2:first-child,.body-text-content>h3:first-child,.body-text-content>h4:first-child,.body-text-content>h5:first-child,.body-text-content>h6:first-child{margin-top:0}.body-text-content h1{font-size:28px;line-height:1.3}.body-text-content h2{font-size:24px;line-height:1.3}.body-text-content h3{font-size:20px;line-height:1.4}.body-text-content p{line-height:1.7;margin-bottom:var(--spacing-md)}.body-text-content p+h1,.body-text-content p+h2,.body-text-content p+h3,.body-text-content p+h4,.body-text-content p+h5,.body-text-content p+h6{margin-top:var(--spacing-xl)}.body-text-content h1+p,.body-text-content h2+p,.body-text-content h3+p,.body-text-content h4+p,.body-text-content h5+p,.body-text-content h6+p{margin-top:0}.body-text-content ol,.body-text-content ul{margin:var(--spacing-md) 0;padding-left:var(--spacing-lg)}.body-text-content li{line-height:1.6;margin-bottom:var(--spacing-xs)}.body-text-content blockquote{border-left:4px solid var(--color-primary);color:var(--color-text-secondary);font-style:italic;margin:var(--spacing-lg) 0;padding-left:var(--spacing-lg)}.body-text-content strong{color:var(--color-text);font-weight:600}.body-text-content em{color:var(--color-text-secondary);font-style:italic}.body-text-content .process-image-slider{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:flex-start;margin:var(--spacing-md) 0;overflow-x:visible;position:relative;width:100%}.body-text-content .process-image-slider::-webkit-scrollbar{display:none}.inline-slider-nav-btn{display:none!important}.inline-slider-prev{left:5px}.inline-slider-next{right:5px}.body-text-content .process-image-inline{border-radius:var(--radius-md);box-shadow:0 4px 12px #17243f1a;cursor:pointer;flex-shrink:0;height:112px;object-fit:cover;pointer-events:auto!important;position:relative;transition:all .3s ease;width:150px;z-index:10005!important}@media (max-width:768px){.body-text-content .process-image-inline{height:112px;width:150px}.body-text-content{font-size:15px}.body-text-content h1{font-size:24px}.body-text-content h2{font-size:20px}.body-text-content h3{font-size:18px}}.about-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;overflow:hidden;overscroll-behavior:contain;padding:var(--spacing-lg);position:fixed;right:0;top:0;touch-action:auto;z-index:9999}.about-modal-content{animation:slideUp .4s ease-out;background:var(--color-background);border:2px solid var(--color-royal);border-radius:var(--radius-xl);box-shadow:0 20px 40px #17243f26;display:flex;flex-direction:column;height:90vh;max-height:90vh;max-width:1000px;overflow:hidden;position:relative;touch-action:pan-y pinch-zoom;width:100%}.about-modal-scrollable{-webkit-overflow-scrolling:touch;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:var(--spacing-lg);padding-bottom:calc(240px + env(safe-area-inset-bottom, 0px));touch-action:pan-y}.about-modal-close{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:50%;box-shadow:0 4px 12px #08364526;color:var(--color-white-smoke);cursor:pointer;display:flex;height:44px;justify-content:center;position:absolute;right:var(--spacing-lg);top:var(--spacing-lg);touch-action:manipulation;transition:all var(--transition-normal);user-select:none;-webkit-user-select:none;width:44px;z-index:10}.about-modal-close:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #057bc159;transform:translateY(-2px)}.about-modal-close svg{height:20px;width:20px}.about-modal-close svg,.about-modal-close:hover svg{color:var(--color-white-smoke)}.about-modal-header{align-items:flex-start;background:var(--color-background);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;gap:var(--spacing-xl);overflow:hidden;padding:12px var(--spacing-xxl) var(--spacing-xl);position:relative}.about-modal-header:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='100' height='100' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='25' cy='25' r='1' fill='%23fff' opacity='.1'/%3E%3Ccircle cx='75' cy='75' r='1' fill='%23fff' opacity='.1'/%3E%3Ccircle cx='50' cy='10' r='.5' fill='%23fff' opacity='.1'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E");bottom:0;content:"";left:0;opacity:.3;pointer-events:none;position:absolute;right:0;top:0}.about-hero-image{border:4px solid var(--color-royal);border-radius:50%;box-shadow:0 8px 24px #1523204d;flex-shrink:0;height:200px;overflow:hidden;position:relative;width:200px;z-index:2}.about-hero-image img{height:100%;object-fit:cover;width:100%}.about-hero-content{flex:1 1;position:relative;z-index:2}.about-hero-content h1{font-size:1.5rem;font-weight:800;font-weight:700;letter-spacing:-.02em;margin:0 0 var(--spacing-sm) 0}.about-hero-content h1,.about-hero-content h2{color:var(--color-prussian-blue);font-family:var(--font-heading)}.about-hero-content h2{font-size:1.3rem;font-weight:800;font-weight:400;letter-spacing:.01em;margin:0 0 var(--spacing-md) 0}.about-intro{color:var(--color-prussian-blue);font-family:var(--font-primary);font-size:1.1rem;font-weight:400;line-height:1.6;margin:0 0 var(--spacing-sm) 0;opacity:1}.about-modal-body{padding:0}.about-section{margin-bottom:var(--spacing-xxl);opacity:0;transform:translateY(30px);transition:all .6s ease-out}.about-section:last-child{margin-bottom:0}.about-section.visible{opacity:1;transform:translateY(0)}.about-section:first-child.visible{transition-delay:.1s}.about-section:nth-child(2).visible{transition-delay:.2s}.about-section:nth-child(3).visible{transition-delay:.3s}.about-section:nth-child(4).visible{transition-delay:.4s}.about-section:nth-child(5).visible{transition-delay:.5s}.about-section h3{color:var(--color-prussian-blue);font-family:var(--font-heading);font-size:1.5rem;font-weight:800;font-weight:700;margin:0 0 var(--spacing-lg) 0;padding-left:var(--spacing-md);position:relative}.about-section h3:before{background:var(--color-secondary);border-radius:2px;content:"";height:24px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.about-section>p{color:var(--color-prussian-blue);font-family:var(--font-primary);font-size:1rem;font-weight:400;line-height:1.7;margin:0 0 var(--spacing-md) 0;opacity:.9;padding-left:var(--spacing-md)}.expertise-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:var(--spacing-lg)}.expertise-item{background:var(--color-sand);border:1px solid var(--color-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-normal)}.expertise-item:hover{border-color:var(--color-secondary);box-shadow:0 8px 24px #18777340;transform:translateY(-2px)}.expertise-item h4{font-size:1.1rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.expertise-item h4,.expertise-item p{color:var(--color-prussian-blue);font-family:var(--font-primary)}.expertise-item p{font-size:.9rem;font-weight:400;line-height:1.5;margin:0;opacity:.8}.project-highlights{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-top:var(--spacing-lg);padding-left:var(--spacing-md)}.highlight-item{align-items:center;background:#0000;border:2px solid var(--color-tech-blue);border-radius:var(--radius-lg);display:flex;gap:var(--spacing-lg);padding:var(--spacing-lg);transition:all var(--transition-normal)}.highlight-item.clickable{-webkit-tap-highlight-color:transparent;cursor:pointer;touch-action:manipulation}.highlight-item:hover{box-shadow:0 8px 24px #4dd8ff26;transform:translateY(-2px)}.highlight-item.clickable:hover{border-color:var(--color-tech-blue);box-shadow:0 12px 32px #4dd8ff40;transform:translateY(-4px)}.highlight-preview{border:2px solid var(--color-royal);border-radius:var(--radius-lg);box-shadow:0 4px 12px #788ce333;flex-shrink:0;height:80px;overflow:hidden;width:80px}.highlight-preview img{height:100%;object-fit:cover;width:100%}.highlight-content{flex:1 1}.highlight-content h4{color:var(--color-prussian-blue);font-size:1.1rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.highlight-content p{color:var(--color-prussian-blue);font-size:.95rem;line-height:1.6;margin:0;opacity:.9}.project-award{color:var(--color-secondary);font-family:var(--font-primary);font-size:.85rem;font-style:italic;font-weight:500;margin-top:var(--spacing-xs)}.scroll-down-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:50%;bottom:var(--spacing-lg);box-shadow:0 4px 12px #08364526;cursor:pointer;display:flex;height:48px;justify-content:center;opacity:1;position:absolute;right:var(--spacing-lg);touch-action:manipulation;transform:translateY(0);transition:all var(--transition-normal);user-select:none;-webkit-user-select:none;width:48px;z-index:10}.scroll-down-btn:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #057bc159;transform:translateY(-2px)}.scroll-down-btn svg{color:var(--color-white-smoke);transition:all var(--transition-normal)}.scroll-down-btn:hover svg{color:var(--color-white-smoke);transform:translateY(2px)}.tools-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.tool-tag{background:var(--color-secondary);border:1px solid var(--color-secondary);border-radius:var(--radius-md);box-shadow:0 2px 4px #1523201a;font-family:var(--font-primary);font-size:.85rem;font-weight:400;padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-fast)}.tool-tag,.tool-tag:hover{color:var(--color-white-smoke)}.tool-tag:hover{background:var(--color-bronze-spice);border-color:var(--color-bronze-spice);box-shadow:0 4px 8px #c65a1e4d;transform:translateY(-1px)}.about-cta{display:flex;justify-content:center;margin-bottom:calc(var(--spacing-xxxl)*2);margin-top:var(--spacing-xl);padding-left:var(--spacing-md)}.cta-button{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--color-royal);border:2px solid var(--color-royal);border-radius:var(--radius-lg);color:var(--color-white-smoke);display:inline-flex;font-size:1rem;font-weight:600;overflow:hidden;padding:var(--spacing-md) var(--spacing-lg);position:relative;text-decoration:none;touch-action:manipulation;transition:all var(--transition-fast);user-select:none;-webkit-user-select:none}.cta-button:before{background:var(--color-background);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.cta-button:hover:before{left:100%}.cta-button:hover{background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 8px 24px #1523204d;color:var(--color-white-smoke);transform:translateY(-2px)}.cta-button.secondary{align-items:center;animation:smoothPulse 4s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:var(--radius-lg);box-shadow:0 4px 12px #15232026,0 0 4px var(--color-secondary);color:var(--color-white-smoke);cursor:pointer;display:flex;font-family:var(--font-heading);font-size:.9rem;font-weight:800;font-weight:600;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);transition:all var(--transition-fast)}.cta-button.secondary:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #15232040,0 0 8px var(--color-secondary),0 0 12px var(--color-secondary),0 0 16px #18777366;color:var(--color-white-smoke);transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.about-modal-overlay{align-items:flex-start;padding:0}.about-modal-content{border-radius:0;height:100vh;max-height:100vh}.about-modal-scrollable{padding:16px 16px calc(180px + env(safe-area-inset-bottom, 0px))}.about-modal-close{height:48px;right:12px;top:12px;width:48px}.about-modal-header{flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-lg);padding-top:60px;text-align:left}.about-hero-image{height:120px;margin:0;width:120px}.about-hero-content{text-align:left}.about-hero-content h1{font-size:1.5rem}.about-hero-content h2{font-size:1.1rem}.about-intro{text-align:left}.about-modal-body{padding:0;text-align:left}.about-section,.about-section h3,.about-section h4,.about-section p{text-align:left}.expertise-grid{grid-template-columns:1fr}.expertise-item{text-align:left}.about-cta{flex-direction:column}.cta-button{justify-content:center;min-height:48px;width:100%}.highlight-item{flex-direction:row;gap:var(--spacing-md);text-align:left}.highlight-preview{flex-shrink:0;height:80px;margin:0;width:80px}}@media (max-width:480px){.about-modal-content{margin:var(--spacing-sm);max-height:95vh}.about-hero-content h1,.about-section h3{font-size:1.5rem}}.portfolio-container{-webkit-tap-highlight-color:transparent;background:#0000;contain:none;height:100vh;overflow:visible;position:relative;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:100vw}.grid-interaction-layer{-webkit-overflow-scrolling:touch;cursor:default;inset:0;overscroll-behavior:none;position:absolute;touch-action:none}.about-btn{-webkit-tap-highlight-color:transparent;align-items:center;animation:smoothPulse 4s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:var(--radius-lg);box-shadow:0 4px 12px #08364526,0 0 4px var(--color-prussian-blue);color:var(--color-white-smoke);cursor:pointer;display:flex;font-family:var(--font-heading);font-size:.9rem;gap:var(--spacing-sm);justify-content:center;left:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);pointer-events:auto;position:fixed;top:var(--spacing-lg);touch-action:manipulation;transition:all var(--transition-fast);user-select:none;-webkit-user-select:none;z-index:9999}.about-btn:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #2a5caa59,0 0 8px var(--color-tech-blue),0 0 12px var(--color-tech-blue),0 0 16px #2a5caa66;transform:translateY(-2px)}.about-btn svg{height:16px;width:16px}.contact-btn{-webkit-tap-highlight-color:transparent;align-items:center;animation:smoothPulse 4s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-prussian-blue);border:2px solid var(--color-prussian-blue);border-radius:var(--radius-lg);box-shadow:0 4px 12px #08364526,0 0 4px var(--color-prussian-blue);color:var(--color-white-smoke);cursor:pointer;display:flex;font-family:var(--font-heading);font-size:.9rem;gap:var(--spacing-sm);justify-content:center;padding:var(--spacing-md) var(--spacing-lg);pointer-events:auto;position:fixed;right:var(--spacing-lg);top:var(--spacing-lg);touch-action:manipulation;transition:all var(--transition-fast);user-select:none;-webkit-user-select:none;z-index:9999}.contact-btn:hover{background:var(--color-tech-blue);border-color:var(--color-tech-blue);box-shadow:0 8px 24px #2a5caa59,0 0 8px var(--color-tech-blue),0 0 12px var(--color-tech-blue),0 0 16px #2a5caa66;transform:translateY(-2px)}.contact-btn svg{height:16px;width:16px}@keyframes smoothPulse{0%{box-shadow:0 4px 12px #08364526,0 0 2px var(--color-prussian-blue)}50%{box-shadow:0 4px 12px #08364526,0 0 6px var(--color-prussian-blue),0 0 8px var(--color-prussian-blue)}to{box-shadow:0 4px 12px #08364526,0 0 2px var(--color-prussian-blue)}}@media (max-width:1024px){.about-btn{font-size:.8rem;left:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);top:var(--spacing-md)}}@media (max-width:768px){.portfolio-container{-webkit-tap-highlight-color:transparent}.about-btn{border-radius:8px;font-size:.75rem;gap:6px;left:12px;min-height:44px;min-width:44px;padding:10px 14px;top:12px}.about-btn svg{height:14px;width:14px}.contact-btn{border-radius:8px;font-size:.75rem;gap:6px;min-height:44px;min-width:44px;padding:10px 14px;right:12px;top:12px}.contact-btn svg{height:14px;width:14px}}@media (max-width:480px){.about-btn{border-radius:6px;font-size:.7rem;gap:4px;left:8px;min-height:40px;min-width:40px;padding:8px 10px;top:8px}.about-btn svg{height:12px;width:12px}.contact-btn{border-radius:6px;font-size:.7rem;gap:4px;min-height:40px;min-width:40px;padding:8px 10px;right:8px;top:8px}.contact-btn svg{height:12px;width:12px}.about-btn:active,.contact-btn:active{transform:scale(.95)}}@supports not ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.contact-btn{background:#fffffff2}}.three-dot-container{flex-direction:column;gap:12px}.three-dot-container,.three-dot-wrapper{align-items:center;display:flex;justify-content:center}.three-dot-wrapper{gap:8px}.three-dot-dot{border-radius:50%;display:inline-block}.three-dot-pulsate .three-dot-dot{animation:pulsate 1.4s ease-in-out infinite}.three-dot-pulsate .three-dot-dot:first-child{animation-delay:0s}.three-dot-pulsate .three-dot-dot:nth-child(2){animation-delay:.2s}.three-dot-pulsate .three-dot-dot:nth-child(3){animation-delay:.4s}@keyframes pulsate{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.three-dot-bounce .three-dot-dot{animation:bounce 1.4s ease-in-out infinite}.three-dot-bounce .three-dot-dot:first-child{animation-delay:0s}.three-dot-bounce .three-dot-dot:nth-child(2){animation-delay:.2s}.three-dot-bounce .three-dot-dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.three-dot-rotate .three-dot-wrapper{animation:rotate 1.5s linear infinite}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.three-dot-small .three-dot-wrapper{gap:6px}.three-dot-medium .three-dot-wrapper{gap:8px}.three-dot-large .three-dot-wrapper{gap:10px}.three-dot-text{font-family:var(--font-primary);font-size:14px;font-weight:500}.loading-screen{align-items:center;background:var(--color-prussian-blue);display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;transition:opacity .8s ease-out,visibility .8s ease-out,transform .8s ease-out;width:100vw;z-index:9999}.loading-screen.fade-out{opacity:0;transform:scale(1.05);visibility:hidden}.loading-container{align-items:center;display:flex;flex-direction:column;gap:.75rem;height:100%;justify-content:center;text-align:center;width:100%}.loading-text h2{font-family:Inter,sans-serif;font-size:2.2rem;letter-spacing:-.02em;margin:0}.loading-text h2,.loading-text p{color:var(--color-white-smoke);font-weight:400}.loading-text p{font-family:var(--font-primary);font-size:1.1rem;letter-spacing:.01em;margin:0 0 2rem}.progress-bar{border-radius:4px;box-shadow:inset 0 1px 3px #0000001a,0 1px 2px #0000000d;display:flex;gap:2px;height:8px;margin:0 auto .8rem;overflow:hidden;padding:1px;position:relative;width:320px}.progress-bar,.progress-bar:before{background:var(--color-background-alt)}.progress-bar:before{animation:backgroundShimmer 3s ease-in-out infinite;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.progress-segment{background:#ffffff1a;border-radius:2px;flex:1 1;height:100%;transition:all .3s ease}.progress-segment.filled{background:var(--color-tech-blue);box-shadow:0 0 4px #057bc166,0 0 8px #057bc133}@keyframes backgroundShimmer{0%,to{opacity:.3}50%{opacity:.6}}.progress-text{color:var(--color-white-smoke);font-family:var(--font-primary);font-size:1rem;font-weight:500;letter-spacing:.02em}@media (max-width:768px){.loading-container{gap:.5rem}.loading-text h2{font-size:1.8rem}.loading-text p{font-size:1rem}.progress-bar{width:260px}}@media (prefers-contrast:high){.progress-bar{border:1px solid #2c2c2c}}@media (prefers-reduced-motion:reduce){.progress-bar:before{animation:none}.progress-segment{transition:none}}.App{background:#0000;height:100vh;opacity:0;overflow:hidden;transform:scale(.95);transition:opacity 1s ease-in-out .3s,transform 1s ease-in-out .3s;width:100vw}.App.loaded{opacity:1;transform:scale(1)}
/*# sourceMappingURL=main.29c8ca3f.css.map*/