body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.personal-website{background:linear-gradient(135deg,#c7eaff,#6dcbff);overflow:hidden;position:relative;text-align:center}.personal-website:before{background:linear-gradient(357deg,#254669 2.49%,#07203e 102.25%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity 10s ease-in-out;z-index:1}.personal-website.night-time:before{opacity:1}.ocean-container{height:20vh;position:absolute;transform:translateY(-120%);width:100%;z-index:2}.ocean{background:linear-gradient(180deg,#7ddeea,#0c73d1ad);overflow:hidden;position:relative;text-align:center}.ocean:before{background:linear-gradient(180deg,#00cce3 2.61%,#00315fad);content:"";inset:0;pointer-events:none;position:absolute;transition:opacity 10s ease-in-out;z-index:3}.ocean.night-ocean:before{opacity:1}.squiggly-line{fill:none;stroke:#0087ca;stroke-width:.2;stroke-linecap:round;stroke-dasharray:20;animation:squiggle-animation 12s linear infinite;z-index:4}@keyframes squiggle-animation{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}.relative{position:relative}.header-text{position:absolute;z-index:100;z-index:3}.personal-website-header{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem;z-index:100;z-index:3}.text-color-day{color:#000;transition:color 10s ease-in}.text-color-night{color:#fff;transition:color 10s ease-in}.time-toggle-container{align-items:center;border-radius:8px;cursor:pointer;display:flex;justify-content:center;min-height:40px;padding:8px 12px;position:absolute;right:0;top:0;z-index:1000}.time-toggle-container:hover{transform:scale(1.45);transition:all 2.5s ease}.sun-moon-toggle{cursor:pointer;height:120px;transition:transform .3s ease-in-out;width:120px}.sun-moon-toggle:hover{transform:scale(1.1)}.sun-moon-toggle #center{transform-origin:center;transition:transform 10s ease-out,fill 10s ease-out}.sun-moon-toggle #mask-center,.sun-moon-toggle #mask-rays{transform-origin:center;transition:transform 10s ease-out}.sun-moon-toggle #rays{stroke-linecap:round;transition:stroke 10s ease-out,stroke-width 10s ease-out,opacity 10s ease-out}.sun-moon-toggle.day #center{fill:#000;transform:rotate(-35deg)}.sun-moon-toggle.day #rays{stroke:#000;stroke-width:2px;opacity:0}.sun-moon-toggle.day #mask-rays{transform:scale(.5)}.sun-moon-toggle.day #mask-center{transform:translateX(-18px)}.sun-moon-toggle.night #center{fill:#fff;transform:rotate(-35deg) scale(1)}.sun-moon-toggle.night #rays{stroke:#fff;stroke-width:3px;opacity:1}.sun-moon-toggle.night #mask-rays{transform:scale(1)}.sun-moon-toggle.night #mask-center{transform:translateX(-40px)}.sun-moon{animation:moon-animation 40s ease-in-out infinite;cursor:pointer;position:absolute;right:5%;top:0;transition:opacity 2s ease-in-out,transform .3s ease-in-out;z-index:2}.sun-moon:hover{transform:scale(1.15)}.sun-moon.visible{opacity:1;transition-delay:5s}.sun-moon.hidden{opacity:0;transition-delay:0s}@keyframes moon-animation{0%{transform:translatex(-665%)}to{transform:translatex(665%)}}.time-toggle-button{background:linear-gradient(357deg,#254669 2.49%,#07203e 102.25%);border:none;border-radius:15px;cursor:pointer;font-size:14px;font-weight:600;height:5rem;letter-spacing:1px;padding:10px 20px;position:relative;text-transform:uppercase;width:13rem;z-index:30}.time-toggle-button:before{background:linear-gradient(135deg,#c7eaff,#6dcbff);border-radius:15px;content:"";inset:0;opacity:0;position:absolute;transition:opacity 10s ease-in-out;z-index:1}.time-toggle-button.night:before{border-radius:15px;opacity:1}.time-toggle-button:hover{box-shadow:0 8px 25px #0000004d;transform:translateY(-2px)}.view-map-button{padding:0 2rem;white-space:nowrap;width:auto}.view-map-button.day{color:#fff}.view-map-button.night{color:#000}.personal-website-header h1{font-size:clamp(2rem,8vmin,4rem);font-weight:700;margin-bottom:1rem;text-shadow:2px 2px 4px #0000004d}.personal-website-header p{font-size:clamp(1rem,3vmin,1.5rem);font-weight:300;line-height:1.5;max-width:600px;opacity:.9}.ferry:hover{transform:scale(1.1)}.button-text-container{height:100%;left:0;position:absolute;top:2rem;width:100%;z-index:25}.button-text{left:0;position:absolute;right:0;top:0;transition:opacity 5s ease-in-out,color 5s ease-in-out}.button-text.visible{opacity:1;transition-delay:5s}.button-text.hidden{opacity:0;transition-delay:0s}.map{background-color:#f3e8d2;height:75vh;overflow-x:scroll;overflow-y:scroll}.map,.subway-container{position:relative;width:100%}.subway-container{height:200vh;padding:50px 0}.subway-main-line{display:block;height:1114px;left:0;overflow:visible;position:relative;width:100%}.station{align-items:center;animation:fadeInStation .8s ease-out forwards;cursor:pointer;display:flex;opacity:0;position:absolute;transform:translate(-50%,-50%);z-index:10}.station-circle{background-color:#fff;border:4px solid #f18401;border-radius:50%;height:24px;position:relative;transition:all .3s ease;width:24px;z-index:10}.station-circle:hover{border-width:6px;transform:scale(1.2)}.station-label{background:#fffffff2;border-radius:6px;bottom:-.5rem;box-shadow:0 2px 8px #0000001a;color:#333;font-family:Arial,sans-serif;font-size:16px;font-weight:700;left:1.5rem;margin-left:20px;max-width:200px;overflow:hidden;padding:8px 12px;transition:all .3s ease;white-space:nowrap}.station-label,.station-label:hover{position:absolute;z-index:10}.station-info-wrapper{position:relative}.station-hover-card{background:#fffffffa;border-radius:8px;bottom:-.5rem;box-shadow:0 4px 16px #00000026;font-family:Arial,sans-serif;max-width:400px;padding:16px;transform:scale(.95);transition:opacity .3s ease,transform .3s ease;z-index:1000}.station:hover .station-hover-card{opacity:1;pointer-events:auto;transform:scale(1)}.station:hover .station-label{opacity:1;pointer-events:auto}.hover-card-header{border-bottom:6px solid #f18401;gap:12px;margin-bottom:12px;padding-bottom:12px}.company-icon{font-size:24px}.hover-card-company-name{color:#333;font-size:18px;margin:0 0 4px}.hover-card-timeframe{font-size:13px}.hover-card-positions{margin-bottom:12px}.hover-card-position{border-left:3px solid #f18401;margin-bottom:8px;padding-left:12px}.position-title{color:#333;font-size:14px;margin:0 0 2px}.position-timeframe{font-size:12px}.hover-card-details{color:#555;font-size:13px;margin-top:12px;padding-top:12px}.sub-station .station-circle{border-width:3px;height:12px;transition:none;width:12px}.sub-station .station-label{font-size:14px;padding:6px 10px;transition:none}.branch-horizontal-simple{animation:drawHorizontalSimple 1.5s ease-out forwards;background:linear-gradient(90deg,gold,orange);border-radius:3px;height:6px;position:absolute;width:0;z-index:5}.branch-vertical-simple{animation:drawVerticalSimple 1.2s ease-out forwards;animation-delay:1.5s;background:linear-gradient(180deg,gold,orange);border-radius:3px;height:0;position:absolute;width:6px;z-index:5}@keyframes drawHorizontalSimple{0%{width:0}to{width:calc(50% + 300px)}}@keyframes drawVerticalSimple{0%{height:0}to{height:300px;height:var(--vertical-height,300px)}}@keyframes drawBranchPath{to{stroke-dashoffset:0}}.sub-station{align-items:center;animation:fadeInSubStation .6s ease-out forwards;cursor:pointer;display:flex;opacity:0;position:absolute;transform:translate(-50%,-50%);transition:none}.sub-station-circle{background-color:#fff;border:3px solid gold;border-radius:50%;height:16px;transition:none;width:16px;z-index:10}.sub-station-label{background:#fffffff2;border-radius:4px;box-shadow:0 2px 6px #0000001a;color:#666;font-family:Arial,sans-serif;font-size:14px;margin-left:15px;padding:6px 10px;transition:none;white-space:nowrap}@keyframes fadeInStation{0%{opacity:0;transform:translate(-50%,calc(-50% - 20px))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes fadeInSubStation{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.station-hover-card{background:#fff;border-radius:12px;bottom:-1rem;box-shadow:0 8px 24px #00000026;left:1.5rem;max-width:350px;min-width:250px;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity .2s ease-in-out;z-index:3001}.station-hover-card:hover,.station:hover .station-hover-card{opacity:1;pointer-events:auto}.branch-click-card{opacity:1!important;pointer-events:auto!important}.branch-hover-card{max-width:450px;min-width:300px}.card-close-button{align-items:center;background:#fff;border:2px solid #e5e5e5;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:1.3rem;font-weight:700;height:28px;justify-content:center;line-height:1;padding:0;position:absolute;right:.5rem;top:.5rem;transition:all .2s ease;width:28px;z-index:10}.card-close-button:hover{background:#f44336;border-color:#f44336;color:#fff;transform:scale(1.1) rotate(90deg)}.hover-card-header{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.company-icon{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;flex-shrink:0;height:48px;justify-content:center;overflow:hidden;width:48px}.company-icon img{height:100%;object-fit:cover;width:100%}.branch-project-image{background:#f5f5f5;border-radius:8px;cursor:pointer;height:200px;margin-bottom:1rem;overflow:hidden;position:relative;width:100%}.branch-project-image img{height:100%;object-fit:cover;width:100%}.image-zoom-overlay{align-items:center;background:#0000;display:flex;height:100vh;justify-content:center;left:0;opacity:0;padding:0;pointer-events:none;position:fixed;top:0;transition:opacity .4s ease-out,background .4s ease-out;width:100vw;z-index:10000}.image-zoom-overlay.active{background:#000000f2;opacity:1;pointer-events:auto}.image-zoom-container{height:90vh;opacity:0;position:relative;transform:scale(.7);transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .4s ease-out;width:90vw}.image-zoom-overlay.active .image-zoom-container{opacity:1;transform:scale(1)}.image-zoom-container img{border-radius:8px;box-shadow:0 20px 60px #00000080;height:100%;object-fit:contain;width:100%}.image-zoom-close{align-items:center;background:#fff;border:none;border-radius:50%;color:#333;cursor:pointer;display:flex;font-size:1.5rem;font-weight:700;height:48px;justify-content:center;opacity:0;position:fixed;right:2rem;top:2rem;transform:scale(.5) rotate(-90deg);transition:all .3s ease;width:48px;z-index:10001}.image-zoom-overlay.active .image-zoom-close{opacity:1;transform:scale(1) rotate(0deg);transition-delay:.2s}.image-zoom-close:hover{background:#f44336;color:#fff;transform:scale(1.15) rotate(90deg)!important}.jetblue-transition-container{align-items:center;display:flex;height:100%;justify-content:center;position:relative;width:100%}.jetblue-new-image,.jetblue-old-image{border-radius:8px;box-shadow:0 20px 60px #00000080;height:100%;object-fit:contain;width:100%}.jetblue-new-image{animation:fadeInJetblue 3s ease-in-out forwards;animation-delay:.5s;opacity:0;position:relative;z-index:1}.jetblue-old-image{animation:fadeOutJetblue 3s ease-in-out forwards;animation-delay:.5s;left:0;opacity:1;position:absolute;top:0;z-index:2}@keyframes fadeOutJetblue{0%{opacity:1}to{opacity:0}}@keyframes fadeInJetblue{0%{opacity:0}to{opacity:1}}.hover-card-title{flex:1 1;min-width:0}.hover-card-company-name{color:#1a1a1a;font-size:1.1rem;font-weight:700;margin:0 0 .25rem}.hover-card-timeframe{color:#666;font-size:.85rem;margin:0}.hover-card-positions{border-bottom:1px solid #e5e5e5;margin-bottom:.75rem;padding-bottom:1rem;padding-top:.75rem}.hover-card-position{margin-bottom:.5rem}.hover-card-position:last-child{margin-bottom:0}.position-title{color:#2a2a2a;font-size:.95rem;font-weight:600;margin:0 0 .15rem}.position-timeframe{color:#666;font-size:.8rem;margin:0}.hover-card-details{color:#444;font-size:.9rem;line-height:1.5;padding-top:.75rem}@media (max-width:768px){.station-hover-card{max-width:280px;min-width:200px}.branch-hover-card{max-width:350px;min-width:250px}.branch-project-image{height:150px}}.map-page{background-color:#f3e8d2;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100vw}.back-button{background-color:#049760;border:none;border-radius:8px;box-shadow:0 2px 8px #00000026;color:#fff;cursor:pointer;font-family:Arial,sans-serif;font-size:16px;font-weight:700;padding:12px 24px;position:fixed;right:20px;top:20px;transition:all .3s ease;z-index:1000}.back-button:hover{background-color:#037a4d;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.back-button:active{transform:translateY(0)}.map-page .map{overflow:hidden}.map-page .map,.map-page .subway-container{height:100vh;margin:0;padding:0;width:100vw}.map-page .subway-container{position:relative;z-index:500}.legend{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #00000026;min-width:200px;padding:16px 20px;position:fixed;right:20px;top:80px;z-index:1000}.legend-title{color:#333;font-family:Arial,sans-serif;font-size:16px;font-weight:700;margin:0 0 12px}.legend-item{align-items:center;display:flex;margin-bottom:10px}.legend-item:last-child{margin-bottom:0}.legend-circle{border-radius:50%;flex-shrink:0;margin-right:12px}.job-circle{background-color:#fff;border:4px solid #f18401;height:14px;width:14px}.project-circle{background-color:#000;border:3px solid #000;height:12px;width:12px}.legend-label{color:#333;font-family:Arial,sans-serif;font-size:14px}.legend-divider{background-color:#ddd;height:1px;margin:12px 0}.legend-toggle{align-items:center;cursor:pointer;display:flex;margin-top:8px}.legend-toggle input[type=checkbox]{cursor:pointer;height:16px;margin-right:8px;width:16px}.multi-mode-indicator{background-color:#049760;border-radius:4px;color:#fff;font-family:Arial,sans-serif;font-size:12px;font-weight:700;margin-top:8px;padding:6px 10px;text-align:center}.statue-of-liberty-body{fill:#c4c4c4;transition:fill 50s ease-in;&.night{fill:#959595;transition:fill 50s ease-in}}.statue-of-liberty-island{fill:#5aba7b;transition:fill 50s ease-in;&.night{fill:#4c9d68;transition:fill 50s ease-in}}.statue-of-liberty{bottom:15%;height:70em;left:10%;position:absolute;width:70em;z-index:2}.building-light{animation:building-light-animation 3s ease infinite forwards}@keyframes building-light-animation{0%{fill:#eeea27}25%{fill:#f8f281}50%{fill:#f4f3e3}75%{fill:#f8f281}to{fill:#eeea27}}.buildings{bottom:18.5%;height:68em;position:absolute;right:0;width:70em;z-index:3}.freedom-tower-outside{fill:#4db7d8;transition:fill 10s ease-in;&.night{fill:#2a6375;transition:fill 10s ease-in}}.freedom-tower-inside{fill:#a0d9e6;transition:fill 10s ease-in;&.night{fill:#547178;transition:fill 10s ease-in}}.freedom-tower-line{stroke:#bbe1ec;transition:stroke 10s ease-in;&.night{stroke:#bdff00;transition:stroke 10s ease-in}}.freedom-tower-atenna{stroke:#000;transition:stroke 10s ease-in;&.night{stroke:#052db3;transition:stroke 10s ease-in}}.small-red-building-top{fill:#9a9da0;transition:fill 10s ease-in;&.night{fill:#3c3d3f;transition:fill 10s ease-in}}.small-red-building-bricks{fill:#c63030;transition:fill 10s ease-in;&.night{fill:#790808;transition:fill 10s ease-in}}.black-yellow-windows{fill:#030000;transition:fill 10s ease-in;&.night{fill:#fff31e;transition:fill 10s ease-in}}.church-building{fill:#f9e0a6;transition:fill 10s ease-in;&.night{fill:#8c7f5f;transition:fill 10s ease-in}}.church-building-windows{fill:#694c26;transition:fill 10s ease-in;&.night{fill:#fff31e;transition:fill 10s ease-in}}.background-buildings{fill:#b0c8cc;transition:fill 10s ease-in;&.night{fill:#5f6465;transition:fill 10s ease-in}}.midsized-grey-building{fill:#9d9ea0;transition:fill 10s ease-in;&.night{fill:#3c3d3f;transition:fill 10s ease-in}}.midsized-grey-building-windows{fill:#535456;transition:fill 10s ease-in;&.night{fill:#fff31e;transition:fill 10s ease-in}}.empire-state-building{fill:#f2e8e0;transition:fill 10s ease-in;&.night{fill:#47433f;transition:fill 10s ease-in}}.polygon-building{fill:#8bb3d1;transition:fill 10s ease-in;&.night{fill:#4a5e6c;transition:fill 10s ease-in}}.tetris-building{fill:#8d8097;transition:fill 10s ease-in;&.night{fill:#6c5f75;transition:fill 10s ease-in}}.ferry{animation:ferry-animation 50s ease-in-out infinite;bottom:-10%;cursor:pointer;height:70em;position:absolute;right:10%;width:70em;z-index:4}.ferry:hover{transform:scale(2)}@keyframes ferry-animation{0%{transform:translatex(150%)}to{transform:translatex(-300%)}}.ferry-purple{stroke:#0f264e;transition:stroke 10s ease-in;&.night{stroke:#0a1830;transition:stroke 10s ease-in}}.ferry-navy{fill:#3d4764;transition:fill 10s ease-in;&.night{fill:#2a3144;transition:fill 10s ease-in}}.mobile-warning-overlay{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:9999}.mobile-warning-content{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #ffffff1a;border-radius:20px;box-shadow:0 20px 40px #0000004d;max-width:400px;padding:40px;text-align:center;width:100%}.sad-face{display:block;font-size:4rem;margin-bottom:20px}.mobile-warning-content h2{color:#fff;font-size:1.8rem;font-weight:700;margin-bottom:15px;text-shadow:2px 2px 4px #0000004d}.mobile-warning-content p{color:#ffffffe6;font-size:1rem;line-height:1.6;margin-bottom:30px}.warning-actions{display:flex;justify-content:center}.continue-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:25px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.continue-button:hover{background:#ffffff4d;border-color:#ffffff80;box-shadow:0 8px 20px #0003;transform:translateY(-2px)}.continue-button:active{transform:translateY(0)}@media (max-width:480px){.mobile-warning-content{margin:10px;padding:30px 20px}.sad-face{font-size:3rem}.mobile-warning-content h2{font-size:1.5rem}.mobile-warning-content p{font-size:.9rem}}.login-popup-overlay{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#000;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:10000}.login-popup-content{background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #ffffff1a;border-radius:20px;box-shadow:0 20px 40px #0006;max-width:400px;padding:40px;text-align:center;width:100%}.lock-icon{display:block;font-size:4rem;margin-bottom:20px}.login-popup-content h2{color:#fff;font-size:1.8rem;font-weight:700;margin-bottom:15px;text-shadow:2px 2px 4px #0000004d}.login-popup-content p{color:#ffffffe6;font-size:1rem;line-height:1.6;margin-bottom:30px}.login-form{display:flex;flex-direction:column;gap:15px}.login-form input{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:25px;color:#fff;font-size:1rem;font-weight:500;padding:15px 20px;text-align:center;transition:all .3s ease}.login-form input::placeholder{color:#ffffffb3}.login-form input:focus{background:#ffffff40;border-color:#ffffff80;box-shadow:0 0 20px #fff3;outline:none}.login-form input.error{animation:shake .5s ease-in-out;border-color:#ff6b6b}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.error-message{background:#ff6b6b33;border:1px solid #ff6b6b66;border-radius:15px;color:#ff6b6b;font-size:.9rem;font-weight:600;padding:8px 16px}.login-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:25px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;letter-spacing:1px;padding:15px 30px;text-transform:uppercase;transition:all .3s ease}.login-button:hover{background:#ffffff4d;border-color:#ffffff80;box-shadow:0 8px 20px #0000004d;transform:translateY(-2px)}.login-button:active{transform:translateY(0)}@media (max-width:480px){.login-popup-content{margin:10px;padding:30px 20px}.lock-icon{font-size:3rem}.login-popup-content h2{font-size:1.5rem}.login-popup-content p{font-size:.9rem}.login-button,.login-form input{font-size:.95rem;padding:12px 18px}}
/*# sourceMappingURL=main.e74c39a6.css.map*/