@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(0,206,209,.4)}50%{transform:scale(1.02);box-shadow:0 0 0 15px rgba(0,206,209,0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes checkmark{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.oxbridge-page{min-height:100vh;background:linear-gradient(180deg,#0a0a1a,#0d1033 20%,#1a1a4a 40%,#2a2a5a 60%,#1e3a5f 80%,#2d4a6a);font-family:Figtree,sans-serif;padding-top:60px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-container{position:fixed;top:80px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;z-index:100}.progress-bar{width:200px;height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;border:1px solid rgba(255,255,255,.2)}.progress-fill{height:100%;background:linear-gradient(90deg,#00CED1,#20B2AA);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1)}.progress-text{font-size:14px;color:rgba(255,255,255,.7);font-weight:500}.form-container{width:100%;max-width:700px;min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:40px 20px;position:relative;z-index:10}.step-content{width:100%;text-align:center;animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}.step-content.step-exit{animation:fadeOutUp .3s cubic-bezier(.4,0,.2,1)}.step-content.step-enter{animation:fadeInUp .5s cubic-bezier(.4,0,.2,1)}.step-icon{margin-bottom:16px;animation:float 3s ease-in-out infinite}.step-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,#00CED1,#20B2AA);color:#ffffff;font-weight:700;font-size:18px;border-radius:50%;margin-bottom:24px;box-shadow:0 4px 15px rgba(0,206,209,.3)}.step-title{font-family:Madimi One,cursive;font-size:32px;font-weight:400;color:#ffffff;margin:0 0 12px;line-height:1.3}.step-subtitle{font-size:16px;color:rgba(255,255,255,.7);margin:0 0 32px}.welcome-icon{animation:float 3s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(0,206,209,.4))}.start-btn-wrapper{display:flex;align-items:center;justify-content:center;gap:16px}.start-btn-wrapper .welcome-icon{margin:0}.welcome-title{font-family:Madimi One,cursive;font-size:48px;font-weight:400;background:linear-gradient(135deg,#FFFFFF,#00CED1 50%,#6495ED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 24px}.welcome-subtitle{font-size:20px;color:#ffffff;max-width:550px;margin:0 auto 16px;line-height:1.6;font-weight:600}.welcome-description{font-size:17px;color:rgba(255,255,255,.85);max-width:500px;margin:0 auto 40px;line-height:1.7}.start-btn{display:inline-flex;align-items:center;gap:12px;padding:18px 40px;background:linear-gradient(135deg,#00CED1,#20B2AA 50%,#008B8B);color:#ffffff;border:none;border-radius:12px;font-family:Figtree,sans-serif;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px rgba(0,206,209,.4)}.start-btn:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,206,209,.5)}.start-btn svg{transition:transform .3s ease}.start-btn:hover svg{transform:translateX(4px)}.deadline-badge{display:block;padding:14px 28px;background:linear-gradient(135deg,rgba(0,206,209,.2),rgba(100,149,237,.2));border:2px solid #00ced1;border-radius:30px;color:#00CED1;font-family:Madimi One,cursive;font-size:18px;font-weight:600;margin:24px auto;max-width:fit-content;box-shadow:0 0 20px rgba(0,206,209,.3),0 0 40px rgba(0,206,209,.1);animation:deadlinePulse 2.5s ease-in-out infinite}@keyframes deadlinePulse{0%,to{box-shadow:0 0 20px rgba(0,206,209,.3),0 0 40px rgba(0,206,209,.1)}50%{box-shadow:0 0 30px rgba(0,206,209,.5),0 0 60px rgba(0,206,209,.2)}}.welcome-note{margin-top:16px;font-size:14px;color:rgba(255,255,255,.5)}.typeform-input{width:100%;max-width:500px;padding:20px 24px;background:rgba(255,255,255,.05);border:2px solid rgba(255,255,255,.1);border-radius:12px;font-family:Figtree,sans-serif;font-size:20px;color:#ffffff;outline:none;transition:all .3s ease;box-shadow:none}.typeform-input::placeholder{color:rgba(255,255,255,.4)}.typeform-input:focus{border-color:#00CED1;box-shadow:0 0 20px rgba(0,206,209,.4),0 0 40px rgba(0,206,209,.2);background:rgba(255,255,255,.08)}.input-group{display:flex;flex-direction:column;gap:16px;align-items:center}.input-hint{margin-top:16px;font-size:13px;color:rgba(255,255,255,.5)}.options-grid{display:grid;gap:12px;max-width:500px;margin:0 auto 32px}.options-grid,.options-grid.year-options{grid-template-columns:repeat(3,1fr)}.option-btn{padding:16px 20px;background:rgba(255,255,255,.05);border:2px solid rgba(255,255,255,.1);border-radius:10px;color:#ffffff;font-family:Figtree,sans-serif;font-size:15px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:none}.option-btn:hover{border-color:#00CED1;background:rgba(0,206,209,.15)}.option-btn.selected{border-color:#00CED1;background:linear-gradient(135deg,rgba(0,206,209,.25),rgba(32,178,170,.25));color:#00CED1;font-weight:600}.subjects-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:600px;margin:0 auto 24px}.subject-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);border-radius:20px;color:rgba(255,255,255,.8);font-family:Figtree,sans-serif;font-size:14px;cursor:pointer;transition:all .2s ease;box-shadow:none}.subject-btn:hover{border-color:#00CED1;background:rgba(0,206,209,.15)}.subject-btn.selected{border-color:#00CED1;background:linear-gradient(135deg,rgba(0,206,209,.25),rgba(32,178,170,.25));color:#00CED1;font-weight:500}.subject-btn.other-btn{border-style:dashed;border-color:#00CED1;color:#00CED1;font-weight:500}.subject-btn.other-btn:hover{background:rgba(0,206,209,.2)}.subject-btn .check-icon{color:#00CED1}.selected-count{font-size:14px;color:#00CED1;margin-bottom:24px;font-weight:500}.custom-subjects-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}.custom-subject-tag{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:linear-gradient(135deg,#00CED1,#20B2AA);color:#ffffff;border-radius:20px;font-size:14px;font-weight:500}.remove-subject-btn{background:none;border:none;color:#ffffff;font-size:18px;cursor:pointer;padding:0;line-height:1;opacity:.8;transition:opacity .2s}.remove-subject-btn:hover{opacity:1}.custom-subject-input-container{background:rgba(0,206,209,.1);border:2px solid #00ced1;border-radius:12px;padding:16px;margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto;box-shadow:0 4px 30px rgba(0,206,209,.3);backdrop-filter:blur(10px)}.custom-subject-field{max-width:100%;margin-bottom:12px}.custom-subject-buttons{display:flex;gap:12px;justify-content:center}.add-subject-btn{padding:10px 20px;background:linear-gradient(135deg,#00CED1,#20B2AA);color:#ffffff;border:none;border-radius:8px;font-family:Figtree,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.add-subject-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,206,209,.3)}.cancel-subject-btn{padding:10px 20px;background:transparent;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.3);border-radius:8px;font-family:Figtree,sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-subject-btn:hover{border-color:rgba(255,255,255,.5);color:#ffffff}.university-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:500px;margin:0 auto 32px}.university-btn{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:rgba(255,255,255,.05);border:2px solid rgba(255,255,255,.1);border-radius:12px;color:#ffffff;font-family:Figtree,sans-serif;cursor:pointer;transition:all .3s ease;box-shadow:none}.university-btn:hover{border-color:#00CED1;background:rgba(0,206,209,.15);transform:translateY(-2px);box-shadow:0 4px 20px rgba(0,206,209,.3)}.university-btn.selected{border-color:#00CED1;background:linear-gradient(135deg,rgba(0,206,209,.25),rgba(32,178,170,.25))}.university-btn .uni-name{font-size:18px;font-weight:600}.university-btn .check-icon{color:#00CED1}.availability-container{display:flex;flex-direction:column;gap:32px;margin-bottom:24px}.availability-section{background:rgba(255,255,255,.05);border-radius:16px;padding:20px;box-shadow:none;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px)}.availability-label{font-family:Figtree,sans-serif;font-size:14px;font-weight:600;color:rgba(255,255,255,.9);margin:0 0 16px;text-transform:uppercase;letter-spacing:1px}.availability-grid{display:flex;flex-direction:column;gap:4px}.grid-header,.grid-row{display:grid;gap:4px}.availability-grid.weekdays .grid-header,.availability-grid.weekdays .grid-row,.availability-grid.weekend .grid-header,.availability-grid.weekend .grid-row{grid-template-columns:60px repeat(2,1fr)}.header-cell{padding:8px;font-size:12px;font-weight:600;color:rgba(255,255,255,.7);text-align:center}.day-cell{padding:8px;font-size:13px;font-weight:500;color:rgba(255,255,255,.8);display:flex;align-items:center}.time-cell{padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s ease;background:transparent}.time-cell.available{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.4);color:#22C55E}.time-cell.unavailable{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4);color:#EF4444}.time-cell:hover{transform:scale(1.05)}.availability-hint{display:flex;justify-content:center;gap:24px;font-size:13px;margin-bottom:24px}.available-indicator{color:#22C55E;font-weight:500}.unavailable-indicator{color:#EF4444;font-weight:500}.review-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;text-align:left;max-width:500px;margin:0 auto 32px;box-shadow:none;backdrop-filter:blur(10px)}.review-item{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}.review-item:last-child{border-bottom:none}.review-label{font-size:14px;color:rgba(255,255,255,.6);min-width:120px}.review-value{font-size:15px;color:#ffffff;text-align:right;flex:1;font-weight:500}.review-value.subjects-list{font-size:13px;line-height:1.5;font-weight:400}.review-value.highlight{color:#00CED1;font-weight:600}.nav-buttons{display:flex;justify-content:center;gap:16px;margin-top:32px}.nav-btn-back,.nav-btn-next{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:10px;font-family:Figtree,sans-serif;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.nav-btn-back{background:transparent;border:2px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7)}.nav-btn-back:hover{border-color:rgba(255,255,255,.4);color:#ffffff}.nav-btn-next{background:linear-gradient(135deg,#00CED1,#20B2AA);border:none;color:#ffffff;box-shadow:0 4px 15px rgba(0,206,209,.3)}.nav-btn-next:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,206,209,.4)}.nav-btn-next:disabled{opacity:.5;cursor:not-allowed}.nav-btn-next svg{transition:transform .3s ease}.nav-btn-next:hover:not(:disabled) svg{transform:translateX(4px)}.submit-btn{display:inline-flex;align-items:center;gap:10px;padding:18px 40px;background:linear-gradient(135deg,#00CED1,#20B2AA 50%,#008B8B);border:none;border-radius:12px;color:#ffffff;font-family:Figtree,sans-serif;font-size:18px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px rgba(0,206,209,.4)}.submit-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,206,209,.5)}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.success-content{text-align:center}.success-icon{margin-bottom:24px;animation:float 3s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(0,206,209,.4))}.success-title{font-family:Madimi One,cursive;font-size:36px;background:linear-gradient(135deg,#FFFFFF,#00CED1 50%,#22C55E);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 20px}.success-message{font-size:16px;color:rgba(255,255,255,.9);max-width:450px;margin:0 auto 16px;line-height:1.7}.success-followup{font-size:15px;color:rgba(255,255,255,.7);max-width:400px;margin:0 auto 32px;line-height:1.6}.home-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#00CED1,#20B2AA);border:none;border-radius:10px;color:#ffffff;font-family:Figtree,sans-serif;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px rgba(0,206,209,.3)}.home-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,206,209,.4)}.home-btn svg{transition:transform .3s ease}.home-btn:hover svg{transform:translateX(4px)}@keyframes card-glow{0%,to{box-shadow:0 0 30px rgba(0,206,209,.3),0 0 60px rgba(100,149,237,.2),0 8px 32px rgba(0,0,0,.4)}50%{box-shadow:0 0 40px rgba(0,206,209,.5),0 0 80px rgba(100,149,237,.3),0 8px 32px rgba(0,0,0,.4)}}.auth-modal-overlay{position:fixed;inset:0;background:rgba(10,10,26,.8);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeInUp .3s ease}.auth-modal.glassmorphic-card{background:rgba(15,15,35,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,206,209,.3);border-radius:16px;padding:40px 45px;max-width:420px;width:90%;text-align:center;position:relative;animation:card-glow 4s ease-in-out infinite}.modal-glow{position:absolute;inset:0;border-radius:16px;background:radial-gradient(ellipse at top,rgba(0,206,209,.1) 0,transparent 50%);pointer-events:none}.modal-close{position:absolute;top:15px;right:20px;background:none;border:none;color:rgba(255,255,255,.6);font-size:28px;font-weight:700;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.modal-close:hover{color:#00CED1;background:rgba(0,206,209,.2)}.modal-ghost{margin-bottom:20px;animation:float 3s ease-in-out infinite;filter:drop-shadow(0 0 15px rgba(0,206,209,.4))}.modal-title{font-family:Madimi One,cursive;font-size:28px;font-weight:700;background:linear-gradient(135deg,#FFFFFF,#00CED1 50%,#6495ED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 12px;letter-spacing:1px}.modal-subtitle{font-size:15px;color:rgba(255,255,255,.6);margin:0 0 24px}.modal-divider{margin:0 0 24px}.divider-line{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}.modal-buttons{display:flex;flex-direction:column;gap:16px}.modal-btn{padding:14px 24px;border-radius:10px;font-family:Figtree,sans-serif;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.modal-btn.primary.btn-glow{background:linear-gradient(135deg,#00CED1,#6495ED 50%,#9370DB);border:none;color:#ffffff;letter-spacing:1px;text-transform:uppercase}.modal-btn.primary.btn-glow:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.modal-btn.primary.btn-glow:hover{transform:translateY(-2px);box-shadow:0 0 30px rgba(0,206,209,.5),0 10px 40px rgba(0,0,0,.3)}.modal-btn.primary.btn-glow:hover:before{left:100%}.modal-btn.secondary{background:none;border:none;color:rgba(255,255,255,.6);font-size:14px;padding:8px}.modal-btn.secondary:hover{color:#ffffff}.modal-btn.secondary .signin-link{color:#00CED1;font-weight:600;transition:all .3s ease}.modal-btn.secondary:hover .signin-link{text-shadow:0 0 10px rgba(0,206,209,.8)}.loading-container{display:flex;flex-direction:column;align-items:center;gap:16px;color:rgba(255,255,255,.7)}.loading-ghost{animation:float 2s ease-in-out infinite;filter:drop-shadow(0 0 15px rgba(0,206,209,.4))}.loading-spinner{width:40px;height:40px;border:3px solid rgba(0,206,209,.2);border-top-color:#00ced1;border-radius:50%;animation:spin 1s linear infinite}.error-message{color:#EF4444;font-size:14px;margin-bottom:16px;padding:12px 16px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:8px}@media (max-width:768px){.welcome-title{font-size:36px}.welcome-subtitle{font-size:16px}.start-btn-wrapper{gap:12px}.start-btn-wrapper .welcome-icon img{width:60px;height:60px}.welcome-features{flex-direction:column;gap:16px}.step-title{font-size:26px}.typeform-input{font-size:18px;padding:16px 20px}.options-grid{grid-template-columns:repeat(3,1fr)}.options-grid.year-options{grid-template-columns:1fr;max-width:300px}.university-grid{grid-template-columns:1fr}.subjects-grid{max-width:100%}.availability-grid.weekdays .grid-header,.availability-grid.weekdays .grid-row{grid-template-columns:50px repeat(2,1fr)}.day-cell{font-size:11px}.header-cell{font-size:10px}.review-item{flex-direction:column;gap:4px}.review-value{text-align:left}.nav-buttons{flex-direction:column-reverse;width:100%}.nav-btn-back,.nav-btn-next{width:100%;justify-content:center}}@media (max-width:480px){.form-container{padding:20px 16px}.welcome-title{font-size:28px}.step-title{font-size:22px}.step-subtitle{font-size:14px}.typeform-input{font-size:16px;padding:14px 16px}.options-grid{grid-template-columns:1fr;gap:8px}.option-btn{padding:12px 16px;font-size:14px}.subject-btn{padding:8px 12px;font-size:13px}.start-btn{width:100%;justify-content:center;padding:16px 32px}.auth-modal{padding:32px 24px}.modal-title{font-size:24px}.progress-bar{width:150px}}@media (prefers-reduced-motion:reduce){.loading-ghost,.loading-spinner,.modal-ghost,.step-content,.step-icon,.success-icon,.welcome-icon{animation:none!important}}