/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-main);background-color:var(--bg-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}html.theme-transitioning,html.theme-transitioning *{transition:background-color .5s var(--ease-smooth),border-color .5s var(--ease-smooth),color .5s var(--ease-smooth),box-shadow .5s var(--ease-smooth)!important}body *{transition-property:background-color,border-color,color;transition-duration:.2s;transition-timing-function:var(--ease-smooth)}:root{--primary-color:#c42525;--primary-hover:#ffffff96;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--white:#fff;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--border-radius:.67rem;--border-radius-lg:1rem;--transition:all .35s cubic-bezier(.34, 1.4, .64, 1);--transition-smooth:all .5s cubic-bezier(.16, 1, .3, 1);--ease-bounce:cubic-bezier(.34, 1.4, .64, 1);--ease-spring:cubic-bezier(.2, 1.1, .3, 1.3);--ease-spring-heavy:cubic-bezier(.34, 1.6, .64, 1);--ease-bouncy:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.16, 1, .3, 1);--glass-bg:#ffffffa6;--glass-border:1px solid #ffffff80;--glass-shadow:0 8px 32px 0 #1f268712;--glass-blur:blur(16px);--bg-main:#f9fafb;--text-main:#374151;--text-muted:#6b7280;--border-color:#e5e7eb;--overlay-bg:#ffffffa6;--sidebar-bg:#ffffff80;--card-bg:#ffffffa6;--card-hover-bg:#fffffff2;--main-content-bg:#ffffff59;--content-bg:#ffffffe6;--input-bg:#ffffffb3;--input-bg-focus:#fff;--tab-hover-bg:#ffffffbf;--header-bg:#ffffffe0}[data-theme=dark]{--primary-color:#ef4444;--primary-hover:#fca5a5;--gray-50:#111827;--gray-100:#1f2937;--gray-200:#374151;--gray-300:#4b5563;--gray-400:#6b7280;--gray-500:#9ca3af;--gray-600:#d1d5db;--gray-700:#e5e7eb;--gray-800:#f3f4f6;--gray-900:#f9fafb;--white:#1f2937;--glass-bg:#111827b3;--glass-border:1px solid #ffffff1a;--glass-shadow:0 8px 32px 0 #0000004d;--bg-main:#0f172a;--text-main:#f8fafc;--text-muted:#94a3b8;--border-color:#334155;--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #00000080;--overlay-bg:#0f172ad9;--sidebar-bg:#0f172a99;--card-bg:#1e293ba6;--card-hover-bg:#1e293bf2;--main-content-bg:#0f172a73;--content-bg:#1e293be6;--input-bg:#0f172ab3;--input-bg-focus:#0f172a;--tab-hover-bg:#1e293bbf;--header-bg:#1e293be0}.hidden{display:none!important}.page-container{min-height:100vh;position:relative;overflow:hidden}.btn{cursor:pointer;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),background .4s var(--ease-smooth),opacity .4s var(--ease-smooth);background:var(--white);color:var(--gray-700);letter-spacing:.01em;will-change:transform,box-shadow;border:none;border-radius:.6rem;justify-content:center;align-items:center;padding:.5rem 1.15rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative;transform:translate(0)scale(1);box-shadow:0 2px 8px #00000014,0 1px 2px #0000000f}.btn:hover:not(:disabled){z-index:2;transform:translateY(-3px)scale(1.03);box-shadow:0 10px 24px #00000024,0 4px 10px #0000001a}.btn:active:not(:disabled){transition-duration:.1s;transition-timing-function:var(--ease-smooth);transform:translate(0)scale(.97);box-shadow:0 1px 4px #0000001a}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 1px 3px #0000000f}.btn-primary{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;box-shadow:0 2px 10px #c4252540,0 1px 3px #c4252526}.btn-primary:hover:not(:disabled){transform:translateY(-3px)scale(1.03);box-shadow:0 12px 32px #e11d488c,0 6px 16px #e11d4859}.btn-outline{background:var(--white);color:var(--gray-700);border:1.5px solid #d1d5db99}.btn-outline:hover:not(:disabled){background:var(--gray-50);border-color:#d1d5dbe6}.btn-floating{background:var(--content-bg);-webkit-backdrop-filter:blur(12px);color:var(--gray-700);border:1px solid var(--border-color);transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),background .4s var(--ease-smooth);will-change:transform,box-shadow;cursor:pointer;border-radius:.65rem;padding:.5rem 1.1rem;font-size:.85rem;transform:translate(0)scale(1);box-shadow:0 2px 12px #00000014,0 1px 3px #0000000f}.btn-floating:hover:not(:disabled){background:var(--card-hover-bg);z-index:2;transform:translateY(-3px)scale(1.04);box-shadow:0 10px 28px #00000029,0 4px 12px #0000001a}.btn-floating:active:not(:disabled){transition-duration:.1s;transition-timing-function:var(--ease-smooth);transform:translate(0)scale(.96)}.btn-floating-primary{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),background .4s var(--ease-smooth),opacity .4s var(--ease-smooth);will-change:transform,box-shadow;border:1px solid #c425254d;transform:translate(0)scale(1);box-shadow:0 2px 12px #c4252533,0 1px 3px #c4252526}.btn-floating-primary:hover:not(:disabled){z-index:2;background:linear-gradient(135deg,#b02020,#c42525);transform:translateY(-3px)scale(1.04);box-shadow:0 12px 32px #e11d488c,0 6px 16px #e11d4859}.btn-floating-primary:active:not(:disabled){transition-duration:.1s;transition-timing-function:var(--ease-smooth);transform:translate(0)scale(.96)}.btn-floating-primary:disabled{color:#ffffffb3;box-shadow:none;background:#c4252559;border-color:#0000;transform:none}.rating-page .btn-outline,.planner-page .btn-outline{background-color:var(--content-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:#d1d5db66}.rating-page .btn-outline:hover,.planner-page .btn-outline:hover{background-color:var(--card-hover-bg)}.btn-full{width:100%}.form{flex-direction:column;gap:1rem;display:flex}.form-group{flex-direction:column;gap:.25rem;display:flex}.form-label{color:var(--gray-700);font-size:.875rem;font-weight:500}.form-input{border:1px solid var(--gray-300);border-radius:var(--border-radius);transition:var(--transition);background-color:var(--white);color:var(--text-main);padding:.75rem;font-size:1rem}.rating-page .form-input,.planner-page .form-input{background-color:var(--input-bg);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid #d1d5db80}.form-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #3b82f61a}.card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--border-radius-lg);box-shadow:var(--glass-shadow);border:var(--glass-border);animation:fadeInUp .6s var(--ease-bounce)}.card-header{border-bottom:1px solid var(--gray-200);padding:1.5rem}.card-title{color:var(--gray-900);margin-bottom:.25rem;font-size:1.5rem;font-weight:600}.card-description{color:var(--gray-600);font-size:.875rem}.card-content{padding:1.5rem}.login-page{background-color:var(--gray-50);justify-content:center;align-items:center;padding:3rem 1rem;display:flex;position:relative}.home-top-right{z-index:10;opacity:0;animation:popInScale .6s var(--ease-bouncy) .15s forwards;position:absolute;top:1rem;right:1.5rem}.login-wrapper{z-index:1;flex-direction:column;gap:2rem;width:100%;max-width:28rem;display:flex}.login-wrapper>.card{opacity:0;animation:fadeInUp .6s var(--ease-bouncy) .35s forwards}.login-header{text-align:center;opacity:0;animation:popInScale .7s var(--ease-bouncy) .15s forwards}.app-title{color:var(--primary-color);margin-bottom:.5rem;font-size:1.875rem;font-weight:700}.subtitle{color:var(--gray-600)}.demo-notice{text-align:center;color:var(--gray-600);margin-top:1rem;font-size:.875rem}.google-signin-container{flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;display:flex}.bypass-divider{width:100%;color:var(--gray-400,#9ca3af);align-items:center;gap:.75rem;font-size:.85rem;display:flex}.bypass-divider:before,.bypass-divider:after{content:"";background:var(--gray-200,#e5e7eb);flex:1;height:1px}.bypass-btn{border:1px solid var(--gray-300,#d1d5db);width:100%;color:var(--gray-600,#4b5563);cursor:pointer;background:0 0;border-radius:6px;padding:.6rem 1rem;font-size:.9rem;transition:background .2s,color .2s}.bypass-btn:hover{background:var(--gray-100,#f3f4f6);color:var(--gray-800,#1f2937)}.signin-loading{color:var(--gray-600);flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.loading-spinner-small{border:4px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.login-page .card-content form{flex-direction:column;gap:1rem;display:flex}.login-page .card-content .form-group{gap:.4rem}.login-page .form-input{border-color:var(--gray-300,#d1d5db)}.login-page .form-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #c425251a}.login-page .btn-primary.btn-full{margin-top:.25rem;padding:.75rem 1.15rem;font-size:.95rem}.field-error{color:var(--primary-color,#c42525);margin-top:.15rem;margin-bottom:0;font-size:.8rem}.form-input.input-error{border-color:var(--primary-color,#c42525)}.form-input.input-error:focus{border-color:var(--primary-color,#c42525);box-shadow:0 0 0 3px #c4252526}.server-error{border-radius:var(--border-radius,.67rem);color:var(--primary-color,#c42525);background:#c4252514;border:1px solid #c4252533;padding:.75rem 1rem;font-size:.875rem}.success-message{border-radius:var(--border-radius,.67rem);color:#16a34a;background:#22c55e14;border:1px solid #22c55e33;padding:.75rem 1rem;font-size:.875rem}.password-wrapper{position:relative}.password-wrapper .form-input{padding-right:4rem}.password-toggle{color:var(--gray-500,#6b7280);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.75rem;font-weight:600;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.password-toggle:hover{color:var(--gray-700,#374151);background:var(--gray-100,#f3f4f6)}.auth-link{text-align:center;color:var(--gray-600,#4b5563);margin-top:1rem;font-size:.875rem}.auth-link a{color:var(--primary-color,#c42525);font-weight:500;text-decoration:none}.auth-link a:hover{text-decoration:underline}.confirm-page{padding:1.5rem}.confirm-loading{color:var(--gray-600);flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.confirm-result{flex-direction:column;gap:1rem;display:flex}.resend-form{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.resend-label{color:var(--gray-600,#4b5563);margin:0;font-size:.875rem}[data-theme=dark] .server-error{color:#ef4444;background:#ef44441a;border-color:#ef444440}[data-theme=dark] .success-message{color:#22c55e;background:#22c55e1a;border-color:#22c55e40}[data-theme=dark] .login-page .form-input{border-color:var(--gray-600,#4b5563)}[data-theme=dark] .login-page .form-input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}[data-theme=dark] .password-toggle{color:var(--gray-400,#9ca3af)}[data-theme=dark] .password-toggle:hover{color:var(--gray-200,#e5e7eb);background:var(--gray-700,#374151)}[data-theme=dark] .form-input.input-error{border-color:#ef4444}[data-theme=dark] .form-input.input-error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.home-page{z-index:1;flex-direction:column;display:flex;position:relative}.user-profile-section{z-index:10;opacity:0;animation:popInLeft .6s var(--ease-bouncy) .1s forwards;position:absolute;top:1rem;left:1rem}.user-profile{background:var(--content-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .3s var(--ease-smooth),box-shadow .3s var(--ease-smooth);border-radius:2rem;align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex;box-shadow:0 2px 8px #0000001a}.user-profile:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.user-avatar{object-fit:cover;border:2px solid var(--primary-600);border-radius:50%;width:40px;height:40px}.user-avatar-initials{border:2px solid var(--primary-600);background:var(--primary-600);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.875rem;font-weight:700;display:flex}.user-info{flex-direction:column;gap:.125rem;display:flex}.user-name{color:var(--gray-900);font-size:.875rem;font-weight:600;line-height:1.2}.user-email{color:var(--gray-600);font-size:.75rem;line-height:1.2}.home-bg,.page-bg,.login-bg{z-index:0;position:fixed;top:0;right:0;bottom:0;left:0}.bg-image{object-fit:cover;width:100%;height:100%}.bg-overlay{background-color:var(--overlay-bg);position:absolute;top:0;right:0;bottom:0;left:0}.home-header{z-index:2;opacity:0;animation:popInScale .7s var(--ease-bouncy) .2s forwards;flex-direction:column;align-items:center;gap:2rem;padding-top:4rem;padding-bottom:2.5rem;display:flex;position:relative}.login-page-header{z-index:2;flex-direction:column;align-items:flex-start;gap:2rem;padding-top:4rem;padding-bottom:2.5rem;display:flex;position:relative}.logo{filter:drop-shadow(0 4px 6px #0000001a);width:auto;height:6rem}[data-theme=dark] .login-header .logo,[data-theme=dark] .home-header .logo{filter:drop-shadow(0 0 35px #ffffffe6)drop-shadow(0 0 15px #ffffffb3)}.app-title-large{color:var(--primary-color);text-align:center;letter-spacing:-.025em;font-family:Trebuchet MS,sans-serif;font-size:3rem;font-weight:800}.tagline{color:var(--black-900);font-family:Trebuchet MS,sans-serif;font-size:2rem}.home-content{z-index:2;opacity:0;animation:fadeInUp .6s var(--ease-bouncy) .4s forwards;flex:1;justify-content:center;align-items:flex-start;margin-top:1rem;padding:0 1.5rem;display:flex;position:relative}.feature-grid{grid-template-columns:1fr;gap:2.5rem;width:100%;max-width:64rem;display:grid}@media(min-width:768px){.feature-grid{grid-template-columns:1fr 1fr}.app-title-large{font-size:4rem}.logo{height:7rem}}.feature-card{opacity:1;border-radius:var(--border-radius-lg);cursor:pointer;width:100%;height:16rem;animation:popInCard .8s var(--ease-spring-heavy) backwards;transition:transform .6s var(--ease-spring-heavy),box-shadow .6s var(--ease-spring-heavy),background-color .4s ease,color .4s ease;will-change:transform,box-shadow;backface-visibility:hidden;transform-style:preserve-3d;background-color:var(--white);border:none;flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:1.25rem;font-weight:600;display:flex;transform:translate(0)scale(1);box-shadow:0 4px 16px #00000014,0 1px 4px #0000000f}.feature-card:hover{transform:translateY(-14px)scale(1.1);box-shadow:0 32px 64px #0003,0 16px 32px #0000001f}.feature-card:active{transition-duration:.15s;transition-timing-function:var(--ease-smooth);transform:translateY(-2px)scale(.97)}.planner-card{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;animation-delay:.5s;box-shadow:0 4px 20px #c4252533,0 2px 8px #c4252526}.planner-card:hover{background:var(--card-hover-bg);color:var(--primary-color);box-shadow:0 35px 70px #e11d48a6,0 16px 35px #e11d4880}.planner-card:hover .feature-title{color:var(--primary-color)}.rating-card{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;animation-delay:.6s;box-shadow:0 4px 20px #c4252533,0 2px 8px #c4252526}.rating-card:hover{background:var(--card-hover-bg);color:var(--primary-color);box-shadow:0 35px 70px #e11d48a6,0 16px 35px #e11d4880}.rating-card:hover .feature-title{color:var(--primary-color)}.feature-icon{font-size:4rem}.feature-title{text-align:center;font-family:Trebuchet MS,sans-serif;font-size:2rem}.home-footer{z-index:2;opacity:0;animation:fadeInUp .6s var(--ease-bouncy) .7s forwards;justify-content:center;padding-bottom:2rem;display:flex;position:relative}.home-footer .btn-outline{border-radius:.6rem;padding:.55rem 1.5rem;box-shadow:0 2px 10px #00000014}.loading-page{justify-content:center;align-items:center;display:flex}.loading-spinner{border:2px solid var(--gray-200);border-top-color:var(--primary-color);border-radius:50%;width:8rem;height:8rem;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-state{text-align:center;color:var(--gray-400);padding:3rem 1rem;font-size:.9rem;font-style:italic}.fade-in{animation:fadeIn .45s var(--ease-smooth)}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.rating-page{background-color:var(--gray-50);z-index:1;flex-direction:column;height:100vh;display:flex;position:relative}.page-header{border-bottom:1px solid var(--gray-200);background-color:var(--white);justify-content:space-between;align-items:center;padding:1rem;display:flex}.header-logo{height:3rem}.rating-top-bar{z-index:3;background:var(--header-bg);-webkit-backdrop-filter:blur(20px);animation:headerSlideDown .5s var(--ease-bouncy);border-bottom:1px solid #d1d5db4d;position:relative;box-shadow:0 4px 24px #0000000f}.rating-top-row{justify-content:space-between;align-items:center;padding:1rem 1.5rem .75rem;display:flex}.rating-top-row .header-left h1{color:var(--gray-900);letter-spacing:-.02em;margin:0;font-size:1.4rem;font-weight:800}.rating-controls-row{opacity:0;animation:fadeInUp .5s var(--ease-bouncy) .3s forwards;align-items:center;gap:.75rem;padding:0 1.5rem 1rem;display:flex}.tab-container{flex-shrink:0;gap:.5rem;margin:-1rem;padding:1rem;display:flex}.tab-button{cursor:pointer;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),background .4s var(--ease-smooth),color .4s var(--ease-smooth);color:var(--gray-500);letter-spacing:.01em;box-shadow:none;will-change:transform,box-shadow;background:#0000000a;border:none;border-radius:.6rem;padding:1rem 5rem;font-size:1.1rem;font-weight:600;position:relative;transform:translate(0)scale(1)}.tab-button:hover:not(.active){background:var(--tab-hover-bg);color:var(--primary-color);z-index:2;transform:translateY(-3px)scale(1.02);box-shadow:0 12px 32px #e11d4873,0 6px 16px #e11d484d}.tab-button.active{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;z-index:1;transform:translateY(-2px)scale(1.01);box-shadow:0 8px 22px #e11d4873,0 4px 10px #e11d484d}.tab-button:active{transition-duration:.1s;transition-timing-function:var(--ease-smooth);transform:translate(0)scale(.95)}.search-container{flex:1;min-width:0}.search-container .form-input{width:100%;transition:all .35s var(--ease-bouncy);background-color:var(--input-bg);color:var(--text-main);border:1.5px solid #d1d5db66;border-radius:.6rem;padding:1rem 2rem;font-size:.95rem;box-shadow:0 1px 4px #0000000a}.search-container .form-input:focus{border-color:var(--primary-color);background-color:var(--input-bg-focus);transform:translateY(-1px);box-shadow:0 0 0 3px #c4252514,0 2px 8px #0000000f}.rating-content{z-index:2;flex:1;display:flex;position:relative;overflow:hidden}.sidebar{background-color:var(--sidebar-bg);-webkit-backdrop-filter:blur(20px);width:33.333%;transition:var(--transition-smooth);opacity:0;animation:popInLeft .6s var(--ease-bouncy) .25s forwards;border-right:1px solid #d1d5db4d;flex-direction:column;padding:1.25rem;display:flex;overflow:hidden}.sidebar h2{color:var(--gray-800);letter-spacing:.02em;flex-shrink:0;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1.1rem;font-weight:700;display:flex}.sidebar h2:before{content:"";background:linear-gradient(180deg,var(--primary-color),#e74c3c);border-radius:2px;width:4px;height:1.1rem;display:inline-block}.items-list{scroll-behavior:smooth;flex-direction:column;flex:1;gap:.5rem;padding:1rem 1rem 2rem;display:flex;overflow:hidden auto}.items-list::-webkit-scrollbar{width:6px}.items-list::-webkit-scrollbar-track{background:#00000008;border-radius:10px}.items-list::-webkit-scrollbar-thumb{background:#c4252540;border-radius:10px;transition:background .2s}.items-list::-webkit-scrollbar-thumb:hover{background:#c4252573}.item-card{border-radius:var(--border-radius);cursor:pointer;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),background-color .4s var(--ease-smooth),border-color .4s var(--ease-smooth);background-color:var(--card-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;will-change:transform,box-shadow,opacity;animation:cardSlideIn .5s var(--ease-spring-heavy) forwards;border:1.5px solid #d1d5db66;padding:.85rem 1rem;font-size:.95rem;position:relative;box-shadow:0 1px 3px #0000000a}.item-card .selection-bg{border-radius:inherit;opacity:0;transition:opacity .8s var(--ease-smooth);z-index:0;background:linear-gradient(135deg,#c42525,#d43030);position:absolute;top:0;right:0;bottom:0;left:0}.item-card.selected .selection-bg{opacity:1}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(15px)scale(.95)}to{opacity:1;transform:none}}.item-card:hover{background-color:var(--card-hover-bg);border-color:#c4252566;transform:translateY(-4px)scale(1.01);box-shadow:0 4px 12px #c4252514}.item-card.selected{color:#fff;animation:selectBounce .6s var(--ease-bouncy) forwards;background-color:#0000;border:1.5px solid #a01e1e;box-shadow:0 4px 16px #c4252540}@keyframes selectBounce{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.item-title{z-index:1;transition:color .8s var(--ease-smooth);margin-bottom:.15rem;font-size:.925rem;font-weight:600;position:relative}.item-description{z-index:1;color:var(--gray-500);transition:color .8s var(--ease-smooth);font-size:.8rem;position:relative}.item-card.selected .item-description{color:#ffffffbf}.main-content{background-color:var(--main-content-bg);-webkit-backdrop-filter:blur(20px);scroll-behavior:smooth;opacity:0;animation:fadeInUp .6s var(--ease-bouncy) .4s forwards;flex:1;padding:2rem 2rem 5rem;position:relative;overflow-y:auto}.floating-add-review-btn{z-index:1000;background:var(--primary-color);color:#fff;cursor:pointer;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),filter .4s var(--ease-smooth),opacity .4s var(--ease-smooth);will-change:transform,box-shadow,filter;border:none;border-radius:3rem;justify-content:center;align-items:center;padding:1.2rem 3.5rem;font-family:inherit;font-size:1.3rem;font-weight:700;display:flex;position:fixed;bottom:3rem;left:66.6665%;transform:translate(-50%)scale(1);box-shadow:0 8px 24px #00000026,0 4px 10px #0000001a}.floating-add-review-btn:hover:not(:disabled){filter:brightness(1.25);transform:translate(-50%,-6px)scale(1.08);box-shadow:0 20px 50px #c42525a6,0 10px 24px #c4252573}.floating-add-review-btn:active:not(:disabled){transition-duration:.1s;transition-timing-function:var(--ease-smooth);transform:translate(-50%)scale(.96)}.floating-add-review-btn:disabled{box-shadow:none;cursor:not-allowed;filter:none;background:#e11d4866;transform:translate(-50%)scale(1)}.main-content::-webkit-scrollbar{width:6px}.main-content::-webkit-scrollbar-track{background:#00000008;border-radius:10px}.main-content::-webkit-scrollbar-thumb{background:#c4252533;border-radius:10px}.main-content::-webkit-scrollbar-thumb:hover{background:#c4252566}.item-details{animation:contentFadeIn .5s var(--ease-bounce)}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes detailsPopIn{0%{opacity:0;transform:translateY(30px)scale(.95)}50%{opacity:1;transform:translateY(-5px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}.item-details h2{letter-spacing:-.01em;margin-bottom:.25rem;font-size:1.6rem;font-weight:800}.item-details h3{text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400);margin-bottom:.4rem;font-size:.85rem;font-weight:600}.item-details p{color:var(--gray-600);margin-bottom:1.25rem;line-height:1.6}.reviews-section{border-top:1px solid #d1d5db66;margin-top:.5rem;padding-top:1.25rem}.reviews-section h3{text-transform:none;letter-spacing:normal;color:var(--gray-800);margin-bottom:0;font-size:1rem;font-weight:700}.review-card{background-color:var(--content-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--border-radius);transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),border-color .4s var(--ease-smooth);opacity:0;will-change:transform,box-shadow,opacity;animation:reviewSlideIn .65s var(--ease-bouncy) forwards;border:1px solid #d1d5db59;margin-bottom:.75rem;padding:1.1rem 1.25rem;transform:translateY(8px);box-shadow:0 1px 4px #0000000a}@keyframes reviewSlideIn{0%{opacity:0;transform:translateY(30px)scale(.95)}50%{opacity:1;transform:translateY(-5px)scale(1.01)}to{opacity:1;transform:translate(0)scale(1)}}.review-card:hover{border-color:#d1d5db99;transform:translateY(-2px);box-shadow:0 6px 16px #00000014}.review-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.review-header strong{color:var(--gray-700);font-size:.9rem}.review-rating{color:#f59e0b;letter-spacing:2px;flex-shrink:0;font-size:1.25rem}.review-card p{margin-bottom:0;font-size:.9rem;line-height:1.55}.review-user{align-items:center;gap:.6rem;display:flex}.review-avatar{object-fit:cover;border:1.5px solid #00000014;border-radius:50%;flex-shrink:0;width:2rem;height:2rem}.review-avatar-fallback{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.8rem;font-weight:700;display:flex}.review-user-info{flex-direction:column;gap:.1rem;display:flex}.review-timestamp{color:var(--gray-400);font-size:.72rem;font-weight:400}.review-votes{border-top:1px solid #0000000f;align-items:center;gap:.4rem;margin-top:.65rem;padding-top:.55rem;display:flex}.like-btn{cursor:pointer;color:var(--gray-500);background:0 0;border:1.5px solid #d1d5dbb3;border-radius:2rem;align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex;position:relative}.like-btn:hover{color:#e11d48;background:#e11d480d;border-color:#e11d48;transform:scale(1.05)}.like-btn.liked{color:#e11d48;background:#e11d4814;border-color:#e11d48;font-weight:600;animation:.4s cubic-bezier(.175,.885,.32,1.275) heartBeat}.like-btn.liked:after{content:"";z-index:-1;box-sizing:content-box;border:2px solid #e11d48;border-radius:2rem;width:100%;height:100%;animation:.5s ease-out forwards confettiRing;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes heartBeat{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes confettiRing{0%{opacity:.8;border-width:2px;width:100%;height:100%}to{opacity:0;border-width:0;width:160%;height:200%}}.like-count{font-size:.78rem}.floating-btn{z-index:100;position:fixed;bottom:1rem;left:1rem}.planner-page{background-color:var(--gray-50);z-index:1;flex-direction:column;height:100vh;max-height:100vh;padding:1rem;display:flex;position:relative;overflow:hidden}.planner-header{background-color:var(--header-bg);-webkit-backdrop-filter:blur(16px);border-radius:var(--border-radius-lg);z-index:2;opacity:0;animation:headerSlideDown .5s var(--ease-bouncy) .1s forwards;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem;display:flex;position:relative;box-shadow:0 4px 20px #0000000f,0 1px 4px #0000000a}.header-left{align-items:center;gap:.75rem;display:flex}.app-icon{background:linear-gradient(135deg,var(--primary-color),#6366f1);color:#fff;border-radius:.75rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:flex}.header-left h1{color:var(--gray-900);margin:0;font-size:1.5rem;font-weight:700}.header-left p{color:var(--gray-500);margin:0;font-size:.875rem}.header-right{gap:.5rem;display:flex}.planner-content{z-index:2;opacity:0;min-height:0;animation:fadeInUp .6s var(--ease-bouncy) .3s forwards;flex:1;grid-template-columns:1100px 1fr;gap:2rem;display:grid;position:relative;overflow:hidden}.planner-content:after{content:"";background:linear-gradient(to bottom,var(--gray-300),var(--gray-200),var(--gray-300));z-index:10;border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:calc(1100px + 1rem)}.planner-grid{flex-direction:column;padding-right:.5rem;display:flex;overflow:hidden auto}.planner-grid::-webkit-scrollbar{width:6px}.planner-grid::-webkit-scrollbar-track{background:#0000000d;border-radius:10px}.planner-grid::-webkit-scrollbar-thumb{background:#dc26264d;border-radius:10px}.planner-grid::-webkit-scrollbar-thumb:hover{background:#dc262680}.planner-tabs{gap:.5rem;margin:0 -1rem -.5rem;padding:1rem;display:flex}.planner-tab{color:var(--gray-500);cursor:pointer;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),background .4s var(--ease-smooth),color .4s var(--ease-smooth);text-align:center;letter-spacing:.01em;will-change:transform,box-shadow;box-shadow:none;background:#0000000a;border:none;border-radius:.6rem;flex:1;padding:.8rem 0;font-size:.95rem;font-weight:600;position:relative;transform:translate(0)scale(1)}.planner-tab:hover:not(.active){background:var(--tab-hover-bg);color:var(--primary-color);z-index:2;transform:translateY(-3px)scale(1.02);box-shadow:0 12px 32px #e11d4873,0 6px 16px #e11d484d}.planner-tab.active{background:linear-gradient(135deg,var(--primary-color),#d63031);color:#fff;z-index:1;transform:translateY(-2px)scale(1.01);box-shadow:0 8px 22px #e11d4873,0 4px 10px #e11d484d}.planner-tab:active{transition-duration:.1s;transition-timing-function:var(--ease-smooth);transform:translate(0)scale(.95)}.planner-year-content{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--border-radius-lg);border:var(--glass-border);box-shadow:var(--glass-shadow);will-change:transform,opacity;animation:schedulePopIn .6s var(--ease-spring-heavy) both;flex-direction:column;gap:2.2rem;padding:1rem;display:flex}@keyframes schedulePopIn{0%{opacity:0;transform:translate(30px)scale(.94)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes scheduleSlideInRight{0%{opacity:0;transform:translate(50vw)}to{opacity:1;transform:translate(0)}}@keyframes scheduleSlideInLeft{0%{opacity:0;transform:translate(-50vw)}to{opacity:1;transform:translate(0)}}@keyframes scheduleSlideOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-50vw)}}@keyframes scheduleSlideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(50vw)}}.period-row{align-items:stretch;gap:.75rem;display:flex}.period-number{width:2.2rem;color:var(--primary-color);opacity:.7;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.period-courses{flex:1;gap:.35rem;min-height:2.8rem;display:flex}.course-card{background-color:var(--content-bg);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid var(--border-color);border-radius:var(--border-radius);height:3.4rem;min-height:3.4rem;transition:transform .4s var(--ease-spring),box-shadow .4s var(--ease-spring),border-color .4s var(--ease-smooth),background-color .4s var(--ease-smooth);animation:scaleIn .3s var(--ease-spring);will-change:transform,box-shadow;justify-content:space-between;align-items:center;padding:.7rem 1rem;font-size:.95rem;display:flex;transform:translate(0)scale(1)}.course-card.full-year{border-left:3px solid var(--primary-color);flex:1}.course-card.semester{flex:1}.course-card.fall-card{border-left:3px solid #3b82f6}.course-card.spring-card{border-left:3px solid #10b981}.course-card:hover{border-color:var(--primary-color);transform:translateY(-2px)scale(1.02);box-shadow:0 4px 12px #0000001a}.course-card[draggable=true]{cursor:grab}.course-card[draggable=true]:active{cursor:grabbing}.course-card.dragging{opacity:.4;box-shadow:none;transform:scale(.97)}.course-card.drag-over,.empty-half.drag-over,.empty-slot.drag-over{border-color:var(--primary-color);background-color:#dc26260f;box-shadow:0 0 0 2px #dc262640}.course-card-name{color:var(--gray-900);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.empty-half{border:1px dashed var(--border-color);border-radius:var(--border-radius);flex:1;height:3.4rem;min-height:3.4rem}.empty-slot{border:1px dashed var(--border-color);border-radius:var(--border-radius);cursor:pointer;flex:1;justify-content:center;align-items:center;height:3.4rem;min-height:3.4rem;transition:border-color .15s,background-color .15s;display:flex}.empty-slot:hover{border-color:var(--text-main);background-color:var(--card-hover-bg)}.empty-slot.drag-over{border-color:var(--primary-color);background-color:#dc26260f}.add-period-btn{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;pointer-events:none;background:0 0;border:none;padding:0;font-size:1.6rem;font-weight:300;line-height:1;transition:transform .15s}.empty-slot:hover .add-period-btn{color:var(--text-main);transform:scale(1.2)}.add-course-btn-expanded{width:auto;margin-top:1rem;margin-left:auto;margin-right:auto;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:filter .2s,background-color .2s;display:block;background-color:var(--primary-color)!important;color:#fff!important;border-color:var(--primary-color)!important}.add-course-btn-expanded:hover{filter:brightness(1.2);background-color:var(--primary-color)!important;color:#fff!important;border-color:var(--primary-color)!important}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes popInLeft{0%{opacity:0;transform:translate(-40px)scale(.8)rotate(-2deg)}to{opacity:1;transform:translate(0)scale(1)rotate(0)}}@keyframes popInScale{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes popInCard{0%{opacity:0;translate:0 40px;scale:.85}to{opacity:1;translate:0;scale:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.remove-course{color:var(--gray-400);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:.25rem;flex-shrink:0;padding:.3rem;font-size:1.25rem}.remove-course:hover{color:#ef4444;background-color:#ef44441a}.chatbot-section{opacity:0;height:100%;min-height:600px;max-height:800px;animation:popInScale .7s var(--ease-bouncy) .5s forwards;flex-direction:column;display:flex}.chatbot-section h3{color:var(--gray-800);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.25rem;font-weight:700;display:flex}.chatbot-section h3:before{content:"";background-color:#10b981;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;display:block;box-shadow:0 0 0 4px #10b98133}@keyframes pulse{50%{opacity:.5}}.chatbot-container{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--border-radius-lg);border:var(--glass-border);box-shadow:var(--glass-shadow);transition:var(--transition-smooth);flex-direction:column;flex:1;display:flex;overflow:hidden}.chatbot-messages{background-color:var(--main-content-bg);scroll-behavior:smooth;flex-direction:column;flex:1;gap:1rem;max-height:calc(100% - 80px);padding:1.5rem;display:flex;overflow:hidden auto}.chatbot-messages::-webkit-scrollbar{width:6px}.chatbot-messages::-webkit-scrollbar-track{background:#0000000d;border-radius:10px}.chatbot-messages::-webkit-scrollbar-thumb{background:#dc26264d;border-radius:10px;transition:background .2s}.chatbot-messages::-webkit-scrollbar-thumb:hover{background:#dc262680}.message{align-items:flex-start;gap:.75rem;max-width:85%;animation:.3s ease-out slideInMessage;display:flex}@keyframes slideInMessage{0%{opacity:0;transform:translateY(15px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.user-message{flex-direction:row-reverse;align-self:flex-end}.bot-message{align-self:flex-start}.message-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1rem;display:flex}.bot-message .message-avatar{background:linear-gradient(135deg,var(--primary-color),#dc2626);color:#fff;box-shadow:0 2px 4px #dc262633}.user-message .message-avatar{background:var(--gray-200);color:var(--gray-600)}.message-content{border-radius:1rem;padding:.875rem 1.25rem;font-size:.9375rem;line-height:1.5;position:relative;box-shadow:0 1px 2px #0000000d}.user-message .message-content{background:linear-gradient(135deg,var(--primary-color),#b91c1c);color:#fff;border-bottom-right-radius:.25rem}.bot-message .message-content{background-color:var(--content-bg);color:var(--gray-800);border:1px solid var(--gray-200);border-bottom-left-radius:.25rem}.chatbot-input-area{background:var(--header-bg);-webkit-backdrop-filter:blur(10px);border-top:1px solid #dc26261a;flex-shrink:0;padding:1rem 1.25rem}.input-container{background-color:var(--content-bg);border:2px solid var(--gray-200);border-radius:1.5rem;align-items:center;gap:.5rem;padding:.5rem .75rem;transition:all .3s;display:flex;box-shadow:0 2px 8px #0000000d}.input-container:focus-within{background-color:var(--input-bg-focus);border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 12px #dc262626}.chatbot-input{color:var(--gray-800);background:0 0;border:none;outline:none;flex:1;padding:.625rem 1rem;font-size:.9375rem;box-shadow:none!important}.chatbot-input::placeholder{color:var(--gray-400);transition:color .2s}.input-container:focus-within .chatbot-input::placeholder{color:var(--gray-300)}.chatbot-send-btn{white-space:nowrap;border-radius:1.25rem;padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;transition:all .2s}.chatbot-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #dc26264d}.send-arrow{color:#f99;margin-left:2px;font-size:1.1em;transition:transform .2s;display:inline-block}.chatbot-send-btn:hover .send-arrow{transform:translate(4px)}.typing-indicator{align-items:center;gap:4px;padding:.5rem .25rem;display:flex}.typing-dot{background:linear-gradient(135deg,var(--primary-color),#8b5cf6,#3b82f6);width:8px;height:8px;animation:typingBounce 1.5s infinite var(--ease-bounce) both,gradientGlow 3s infinite ease-in-out;background-size:200% 200%;border-radius:50%}.typing-dot:first-child{animation-delay:-.32s,0s}.typing-dot:nth-child(2){animation-delay:-.16s,-1s}.typing-dot:nth-child(3){animation-delay:0s,-2s}@keyframes gradientGlow{0%{background-position:0%;box-shadow:0 0 5px #ef44444d}50%{background-position:100%;box-shadow:0 0 15px #8b5cf699}to{background-position:0%;box-shadow:0 0 5px #ef44444d}}@keyframes typingBounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1.2)}}@media(max-width:1024px){.planner-content{grid-template-columns:1fr;gap:1.5rem}.planner-content:after{display:none}.planner-grid{gap:.5rem}.chatbot-section{min-height:500px;max-height:700px}}@media(max-width:768px){.user-profile-section{top:.5rem;left:.5rem}.user-profile{gap:.5rem;padding:.4rem .75rem}.user-avatar{width:32px;height:32px}.user-name{font-size:.8rem}.user-email{font-size:.7rem}.home-header{padding-top:3rem;padding-bottom:2rem}.app-title-large{font-size:2.5rem}.logo{height:5rem}.feature-card{height:12rem;font-size:1.125rem}.feature-icon{font-size:3rem}.rating-content{flex-direction:column}.sidebar{width:100%;max-height:280px}.planner-header{flex-direction:column;gap:1rem}.tab-button{padding:.9rem 3.6rem;font-size:1rem}.rating-controls-row{flex-direction:column;gap:.5rem}.rating-top-row .header-left h1{font-size:1.2rem}.floating-add-review-btn{left:50%}.chatbot-section{min-height:400px;max-height:600px}.chatbot-messages{padding:1rem}.chatbot-input-area{padding:.75rem 1rem}.message{max-width:90%}.message-content{padding:.625rem .875rem;font-size:.875rem}.input-container{padding:.375rem .5rem}.chatbot-send-btn{padding:.5rem 1rem;font-size:.8125rem}.chatbot-input{padding:.875rem;font-size:.875rem}.chatbot-send-btn{width:100%;padding:.875rem;font-size:.875rem}.planner-tab{padding:.5rem 0;font-size:.8rem}.course-card{padding:.3rem .5rem;font-size:.7rem}.period-number{width:1.5rem;font-size:.75rem}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#00000080;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.modal-content{background-color:var(--content-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:600px;max-height:90vh;animation:.4s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-overlay.closing{animation:.3s ease-out forwards fadeOut}.modal-overlay.closing .modal-content{animation:.3s cubic-bezier(.16,1,.3,1) forwards slideDown}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(20px)scale(.96)}}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{color:var(--text-main);margin:0;font-size:1.5rem;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--border-radius);width:2rem;height:2rem;transition:var(--transition);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:2rem;display:flex}.modal-close:hover{background-color:var(--card-hover-bg);color:var(--text-main)}.modal-body{padding:1.5rem}.modal-body .form-input{background-color:var(--input-bg)!important;border:1px solid var(--border-color)!important;color:var(--text-main)!important}.modal-body .form-input:focus{border-color:var(--primary-color)!important}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:1rem;padding:1.5rem;display:flex}.modal-footer .btn-outline{background-color:var(--content-bg)!important;color:var(--text-main)!important;border-color:var(--border-color)!important}.modal-footer .btn-outline:hover{background-color:var(--card-hover-bg)!important;color:var(--text-main)!important}.modal-footer .btn-primary{transition:filter .2s,background-color .2s;background:var(--primary-color)!important;color:#fff!important;border-color:var(--primary-color)!important}.modal-footer .btn-primary:hover{filter:brightness(1.2);background:var(--primary-color)!important;color:#fff!important;border-color:var(--primary-color)!important}.course-description-box{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);min-height:100px;max-height:200px;padding:1rem;overflow-y:auto}.course-description-box p{color:var(--text-main);margin:0;line-height:1.6}.text-muted{color:var(--text-muted);font-style:italic}.rating-form-group{margin-top:.75rem;gap:0!important}.rating-form-group .form-label{margin-bottom:0!important}.star-rating{gap:.5rem;font-size:2.5rem;line-height:1;display:flex;margin-top:0!important;margin-bottom:1rem!important}.star{cursor:pointer;color:var(--gray-300);-webkit-user-select:none;user-select:none;line-height:1;transition:all .15s;display:inline-block}.star:hover{transform:scale(1.15)}.star.filled{color:#fbbf24}.review-textarea{resize:vertical;min-height:120px;font-family:inherit}.filter-warning{color:#ef4444;margin-top:.5rem;font-size:.875rem;font-weight:500;animation:.3s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media(max-width:768px){.modal-content{width:95%;max-height:85vh}.modal-header h2{font-size:1.25rem}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}}.custom-dropdown{width:100%;position:relative}.dropdown-selected{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:var(--transition);color:var(--text-main);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.dropdown-selected:hover{border-color:var(--primary-color)}.dropdown-selected.open{border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.dropdown-selected:after{content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:contain;width:.8em;height:.8em;transition:transform .2s}.dropdown-selected.open:after{transform:rotate(180deg)}.dropdown-container{background-color:var(--content-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);z-index:1000;opacity:0;pointer-events:none;margin-top:.5rem;transition:all .2s cubic-bezier(.16,1,.3,1);position:absolute;top:100%;left:0;right:0;transform:translateY(-10px)}.dropdown-container.open{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown-search{border-bottom:1px solid var(--gray-200);padding:.75rem}.dropdown-search input{border:1px solid var(--border-color);width:100%;transition:var(--transition);background-color:var(--input-bg);color:var(--text-main);border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.dropdown-search input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #3b82f61a}.dropdown-list{max-height:250px;padding:.5rem 0;overflow-y:auto}.dropdown-item{cursor:pointer;color:var(--text-main);padding:.5rem 1rem;font-size:.9rem;transition:background-color .1s}.dropdown-item:hover{background-color:var(--card-hover-bg);color:var(--primary-color)}.dropdown-item.selected{background-color:var(--card-hover-bg);color:var(--primary-color);font-weight:500}.dropdown-item.no-results{color:var(--gray-500);cursor:default;text-align:center;font-style:italic}.dropdown-item.no-results:hover{color:var(--gray-500);background-color:#0000}.item-card.selected:hover{background:linear-gradient(135deg,#b02020,#c83030);border-color:#901a1a}.modal-content{border:1px solid #fffc;border-radius:1rem;box-shadow:0 25px 50px -12px #00000040}.item-details h2{background:linear-gradient(135deg,var(--primary-color),#dc2626);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;padding-bottom:.3rem;font-size:2.2rem;line-height:1.2}.reviews-header{border-bottom:1px solid #d1d5db4d;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.sort-select{background-color:var(--input-bg);color:var(--text-main);cursor:pointer;border:1.5px solid #d1d5db80;border-radius:2rem;padding:.4rem 2rem .4rem .75rem;font-size:.825rem;font-weight:500;transition:all .2s}.sort-select option{background-color:var(--content-bg);color:var(--text-main)}.sort-select:hover{border-color:var(--primary-color)}.sort-select:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 2px #c425251a}@keyframes headerSlideDown{0%{opacity:0;transform:translateY(-25px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.item-details>p:only-child{text-align:center;color:var(--gray-400);padding:4rem 2rem;font-size:1rem}.onboarding-page{flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;padding:2rem 1rem 4rem;display:flex}.onboarding-wrapper{z-index:1;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:640px;display:flex;position:relative}.onboarding-header{text-align:center;opacity:0;animation:popInScale .7s var(--ease-bouncy) .15s forwards;flex-direction:column;align-items:center;gap:.4rem;display:flex}.onboarding-card{background:var(--glass-bg);width:100%;-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--border-radius-lg);opacity:0;animation:fadeInUp .6s var(--ease-bouncy) .35s forwards;flex-direction:column;gap:1.5rem;padding:2rem;display:flex}.onboarding-progress{align-items:center;gap:1rem;display:flex}.progress-track{background:var(--gray-200);border-radius:999px;flex:1;height:6px;overflow:hidden}.progress-fill{background:var(--primary-color);height:100%;transition:width .4s var(--ease-smooth);border-radius:999px;width:0%}.progress-label{color:var(--gray-500);white-space:nowrap;font-size:.75rem;font-weight:600}.onboarding-step{animation:fadeInStep .3s var(--ease-smooth);flex-direction:column;gap:1.25rem;display:none}.onboarding-step.active{display:flex}@keyframes fadeInStep{0%{opacity:0;transform:translateY(15px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.step-title{color:var(--gray-800);font-size:1.25rem;font-weight:700;line-height:1.3}.step-subtitle{color:var(--gray-500);margin-top:-.75rem;font-size:.875rem}.option-grid{gap:.6rem;display:grid}.option-grid-1{grid-template-columns:1fr}.option-grid-2{grid-template-columns:repeat(2,1fr)}.option-grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:480px){.option-grid-2,.option-grid-3{grid-template-columns:1fr}}.option-card{background:var(--white);border:2px solid var(--gray-200);border-radius:var(--border-radius);cursor:pointer;text-align:left;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s var(--ease-bounce);box-shadow:var(--shadow-sm);flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem 1rem;display:flex}.option-card:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 0 0 3px #c4252514}.option-card.selected{border-color:var(--primary-color);background:#c425250f;box-shadow:0 0 0 3px #c425251f}.option-card-wide{grid-column:1/-1}.option-label{color:var(--gray-800);pointer-events:none;font-size:.9rem;font-weight:600}.option-sub{color:var(--gray-500);pointer-events:none;font-size:.75rem}.option-grid-3 .option-card{text-align:center;align-items:center;padding:.75rem .5rem}.onboarding-nav{border-top:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding-top:.5rem;display:flex}.onboarding-nav .btn-primary{min-width:100px}.onboarding-nav .btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.theme-toggle{background:var(--glass-bg);width:3.5rem;height:3.5rem;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--shadow-lg);cursor:pointer;z-index:1000;transition:var(--transition-smooth);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:2rem;right:2rem;overflow:hidden}.theme-toggle:hover{transform:scale(1.1);box-shadow:0 10px 25px #0003}.theme-icon{width:1.75rem;height:1.75rem;transition:transform .6s var(--ease-bouncy);color:var(--text-main);position:absolute}.sun-core{transition:r .6s var(--ease-bouncy)}.moon-cutout{transition:cx .6s var(--ease-bouncy),cy .6s var(--ease-bouncy),r .6s var(--ease-bouncy);cx:24;cy:10;r:6}.sun-rays{transition:opacity .4s ease,transform .6s var(--ease-bouncy);transform-origin:50%;opacity:1}[data-theme=dark] .theme-icon{transform:rotate(-100deg)}[data-theme=dark] .sun-core{r:9}[data-theme=dark] .moon-cutout{cx:16;cy:6;r:8}[data-theme=dark] .sun-rays{opacity:0;transform:rotate(45deg)scale(.5)}.rating-display-container{background:var(--card-bg);border:2px solid var(--primary-color);border-radius:var(--border-radius-lg);flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:2rem;padding:1.25rem;display:flex;box-shadow:0 8px 20px #c425251f}.rating-display-stars{color:#fbbf24;letter-spacing:.15rem;margin-left:.5rem;font-size:1.6rem;display:inline-block}.rating-number-wrapper{justify-content:flex-end;align-items:baseline;min-width:4.5rem;display:inline-flex}.rating-display-number{color:var(--primary-color);font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.rating-max{color:var(--text-muted);font-size:1.25rem;font-weight:600}.rating-count{color:var(--gray-400);font-size:1rem;font-weight:500}.item-card.scroll-leave-bottom,.course-card.scroll-leave-bottom{transform:scale(.85)translateY(30px);opacity:0!important;box-shadow:0 0 #0000!important}.item-card.scroll-visible,.course-card.scroll-visible{opacity:1;transition:opacity .5s var(--ease-bouncy),transform .5s var(--ease-bouncy),box-shadow .3s ease;transform:scale(1)translateY(0)}.item-card.scroll-visible:hover{transform:translate(4px)scale(1.02)}.review-card.scroll-visible:hover{transform:translateY(-2px)scale(1.01)}.course-card.scroll-visible:hover{transform:translateY(-4px)scale(1.02)}@supports (animation-timeline:view()){@keyframes satisfyScrollTimeline{0%{opacity:0;translate:0 40px;scale:.85}20%{opacity:1;translate:0;scale:1}to{opacity:1;translate:0;scale:1}}.item-card,.course-card{will-change:transform,opacity;animation:linear both satisfyScrollTimeline!important;animation-timeline:view()!important;animation-range:cover!important}.landing-bento-card{will-change:transform,opacity;animation:linear both satisfyScrollTimeline!important;animation-timeline:view()!important;animation-range:cover cover 30%!important}}.landing-page::-webkit-scrollbar{width:6px}.landing-page::-webkit-scrollbar-track{background:#00000008;border-radius:10px}.landing-page::-webkit-scrollbar-thumb{background:#c4252540;border-radius:10px;transition:background .2s}.landing-page::-webkit-scrollbar-thumb:hover{background:#c4252573}.landing-page{--landing-bg:#0a0e1a;--landing-bg-elevated:#111827;--landing-text:#f1f5f9;--landing-text-muted:#94a3b8;--landing-accent:#c42525;--landing-accent-bright:#ef4444;--landing-accent-glow:#c4252566;--landing-card-bg:#11182799;--landing-card-border:#ffffff14;--landing-glass:#0f172ad9;background:var(--landing-bg);color:var(--landing-text);scroll-behavior:smooth;min-height:100vh;overflow:hidden auto}.landing-nav{z-index:100;opacity:0;transform-origin:top;pointer-events:none;transition:opacity .6s var(--ease-smooth),transform .8s var(--ease-spring-heavy),background .6s ease,backdrop-filter .6s ease,box-shadow .6s ease;padding:1.25rem 2.5rem;position:fixed;top:0;left:0;right:0;transform:rotateX(-90deg)}.landing-nav--scrolled{opacity:1;pointer-events:auto;background:var(--landing-glass);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid #ffffff0f;transform:rotateX(0);box-shadow:0 4px 30px #0000004d}.landing-nav-inner{justify-content:space-between;align-items:center;max-width:72rem;margin:0 auto;display:flex}.landing-nav-logo{align-items:center;gap:1rem;display:flex}.landing-nav-logo-img{filter:drop-shadow(0 0 15px #fffc)drop-shadow(0 0 30px #fff6)drop-shadow(0 0 12px #c425254d);width:auto;height:3.2rem;transition:filter .4s}.landing-nav-logo-img:hover{filter:drop-shadow(0 0 20px #ffffffe6)drop-shadow(0 0 40px #ffffff80)drop-shadow(0 0 20px #c4252580)}.landing-nav-brand{letter-spacing:-.02em;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#fff,#ffffffb3);-webkit-background-clip:text;background-clip:text;font-family:Syne,Trebuchet MS,sans-serif;font-size:1.75rem;font-weight:800}.landing-nav-cta{color:#fff;cursor:pointer;transition:transform .4s var(--ease-spring),box-shadow .4s ease;background:linear-gradient(135deg,#c42525,#d63031);border:none;border-radius:.6rem;align-items:center;gap:.5rem;padding:.6rem 1.4rem;font-family:Figtree,sans-serif;font-size:.9rem;font-weight:600;display:flex;box-shadow:0 2px 12px #c425254d}.landing-nav-cta:hover{transform:translateY(-2px)scale(1.04);box-shadow:0 8px 30px #c4252580}.landing-nav-cta:active{transition-duration:.1s;transform:translateY(0)scale(.97)}.landing-hero{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.landing-hero-bg{background-color:#0000;background-image:radial-gradient(80% 60% at 20% 40%,#c4252526,#0000 60%),radial-gradient(60% 80% at 80% 20%,#6366f114,#0000 60%),radial-gradient(70% 50% at 50% 90%,#c425251a,#0000 60%),radial-gradient(40% 40% at 65% 55%,#a855f70f,#0000 60%),linear-gradient(#0a0e1a,#0f172a,#0a0e1a);background-position:0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:200% 200%;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;animation:15s infinite landingGradientShift;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask-image:linear-gradient(#000 85%,#0000 100%);mask-image:linear-gradient(#000 85%,#0000)}.hero-fluid-canvas-container{z-index:1;position:absolute;top:0;right:0;bottom:0;left:0}.hero-fluid-canvas{pointer-events:none;z-index:0;width:100%;height:125vh;position:absolute;top:0;left:0;-webkit-mask-image:linear-gradient(#000 80%,#0000 100%);mask-image:linear-gradient(#000 80%,#0000)}.landing-particles{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.landing-particle{width:calc(2px + var(--i) * .15px);height:calc(2px + var(--i) * .15px);background:var(--landing-accent-bright);opacity:calc(.15 + var(--i) * .015);left:calc(var(--i) * 5% + 1%);animation:landingFloat calc(10s + var(--i) * .7s) linear infinite;animation-delay:calc(var(--i) * -1.3s);will-change:transform;border-radius:50%;position:absolute;bottom:-5%}.landing-particle:nth-child(2n){background:#a855f799}.landing-particle:nth-child(3n){width:calc(1.5px + var(--i) * .1px);height:calc(1.5px + var(--i) * .1px);background:#fbbf2480}.landing-hero-content{z-index:2;text-align:center;will-change:transform,opacity;pointer-events:none;padding:0 2rem;position:relative}.landing-hero-content .landing-hero-btn{pointer-events:auto}.landing-hero-logo{filter:drop-shadow(0 0 20px #fff)drop-shadow(0 0 40px #ffffffe6)drop-shadow(0 0 60px #fff9)drop-shadow(0 0 80px #c4252566);width:auto;height:7rem;animation:landingPulseGlow 3s ease-in-out infinite,landingLogoEntrance 1s var(--ease-spring) both;margin-inline:auto;margin-bottom:2rem}.landing-hero-appname{letter-spacing:-.03em;color:#fff;opacity:0;animation:landingWordReveal .9s var(--ease-spring-heavy) both;text-shadow:0 0 40px #ffffff26;margin-bottom:1.25rem;font-family:Syne,Trebuchet MS,sans-serif;font-size:5rem;font-weight:800;line-height:1.2;animation-delay:.2s}.landing-hero-tagline{letter-spacing:-.02em;margin-bottom:1.75rem;font-family:Syne,Trebuchet MS,sans-serif;font-size:4.5rem;font-weight:800;line-height:1.25}.landing-word{opacity:0;animation:landingWordReveal .8s var(--ease-spring-heavy) both;animation-delay:calc(var(--word-i) * .2s + .4s);background:linear-gradient(135deg,#fff 0%,#fffc 50%,var(--landing-accent-bright) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-right:.5rem;padding:.05em 0;display:inline-block}.landing-word:last-child{background:linear-gradient(135deg,var(--landing-accent-bright) 0%,#ff6b6b 50%,#fbbf24 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.landing-hero-subtitle{color:var(--landing-text-muted);opacity:0;max-width:32rem;animation:landingWordReveal .8s var(--ease-spring) both;margin:0 auto 3.5rem;font-family:Figtree,sans-serif;font-size:1.25rem;line-height:1.6;animation-delay:1.1s}.landing-hero-btn{color:#fff;cursor:pointer;opacity:0;animation:landingWordReveal .8s var(--ease-spring) both,landingBtnPulse 2.5s ease-in-out 2s infinite;transition:transform .4s var(--ease-spring),box-shadow .4s ease;background:linear-gradient(135deg,#c42525,#d63031);border:1px solid #ffffff26;border-radius:.85rem;align-items:center;gap:.75rem;padding:1rem 2.5rem;font-family:Figtree,sans-serif;font-size:1.15rem;font-weight:600;animation-delay:1.4s,2.5s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #c425254d}.landing-hero-btn:before{content:"";border-radius:inherit;background:linear-gradient(135deg,#0000 30%,#fff3,#0000 70%) 0 0/200% 200%;animation:3s 3s infinite landingBtnSheen;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px}.landing-hero-btn:hover{transform:translateY(-4px)scale(1.06);box-shadow:0 12px 40px #c4252580,0 0 60px #c4252533}.landing-hero-btn:active{transition-duration:.1s;transform:translateY(0)scale(.97)}.landing-hero-btn svg{transition:transform .3s var(--ease-spring)}.landing-hero-btn:hover svg{transform:translate(4px)}.landing-scroll-indicator{opacity:0;animation:landingWordReveal .8s var(--ease-spring) both;will-change:opacity;flex-direction:column;align-items:center;gap:.5rem;animation-delay:2s;display:flex;position:absolute;bottom:2.5rem;left:0;right:0}.landing-scroll-indicator span{color:var(--landing-text-muted);letter-spacing:.05em;text-transform:uppercase;font-family:Figtree,sans-serif;font-size:.8rem}.landing-scroll-arrow{color:var(--landing-text-muted);animation:2s ease-in-out infinite landingScrollBounce}.landing-features{max-width:72rem;margin:0 auto;padding:6rem 2rem;position:relative}.landing-section-title{text-align:center;letter-spacing:-.02em;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#fff,#ffffffbf);-webkit-background-clip:text;background-clip:text;margin-bottom:.35rem;padding:.2em 0;font-family:Figtree,sans-serif;font-size:3rem;font-weight:800;line-height:1.4}.landing-section-subtitle{color:var(--landing-text-muted);text-align:center;max-width:36rem;margin:0 auto 3.5rem;font-family:Figtree,sans-serif;font-size:1.15rem;line-height:1.6}.landing-bento{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.landing-bento-card{background:var(--landing-card-bg);border:1px solid var(--landing-card-border);-webkit-backdrop-filter:blur(12px);transition:transform .5s var(--ease-spring),box-shadow .5s ease,border-color .4s ease;cursor:default;border-radius:1.25rem;padding:2.25rem;position:relative;overflow:hidden}.landing-bento-card:before{content:"";border-radius:inherit;background:radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,0%),#c4252526 0%,transparent 80%);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;top:0;right:0;bottom:0;left:0}.landing-bento-card:hover{border-color:#c4252540;transform:translateY(-8px)scale(1.02);box-shadow:0 20px 60px #c425251f,0 0 40px #c425250f}.landing-bento-card:hover:before{opacity:1}.landing-bento-card--wide{grid-column:span 2}.landing-bento-card h3{color:var(--landing-text);margin-bottom:.5rem;font-family:Syne,Trebuchet MS,sans-serif;font-size:1.35rem;font-weight:700}.landing-bento-card p{color:var(--landing-text-muted);font-family:Figtree,sans-serif;font-size:.95rem;line-height:1.6}.landing-bento-icon{width:80px;height:80px;color:var(--landing-text-muted);margin-bottom:1.25rem}.landing-icon-svg{width:100%;height:100%}.landing-star{stroke-dasharray:200;stroke-dashoffset:200px;transition:stroke-dashoffset 1.2s,fill .6s 1s}.landing-star-sparkle{transition:opacity .4s,transform .4s}.landing-icon-animate .landing-star{stroke-dashoffset:0;fill:#fbbf244d}.landing-icon-animate .landing-star-1{fill:#fbbf2466;transition-delay:0s;animation:2s ease-in-out 1.5s infinite landingStarPulse}.landing-icon-animate .landing-star-2{stroke-dashoffset:0;transition-delay:.3s}.landing-icon-animate .landing-star-3{stroke-dashoffset:0;transition-delay:.5s}.landing-icon-animate .landing-star-sparkle{opacity:1;animation:2s ease-in-out 1s infinite landingSparkle}.landing-cal-frame,.landing-cal-header,.landing-cal-divider{stroke-dasharray:300;stroke-dashoffset:300px;transition:stroke-dashoffset 1s}.landing-icon-animate .landing-cal-frame,.landing-icon-animate .landing-cal-header,.landing-icon-animate .landing-cal-divider{stroke-dashoffset:0}.landing-cal-cell{transition:opacity .4s var(--ease-spring),transform .4s var(--ease-spring);transform-origin:50%;transform-box:fill-box;transform:scale(0)}.landing-icon-animate .landing-cal-cell{opacity:.6;transition-delay:calc(var(--cell-i) * .1s + .8s);transform:scale(1)}.landing-ai-bubble,.landing-ai-tail{stroke-dasharray:200;stroke-dashoffset:200px;transition:stroke-dashoffset .8s}.landing-icon-animate .landing-ai-bubble,.landing-icon-animate .landing-ai-tail{stroke-dashoffset:0}.landing-ai-dot{opacity:0;transform-origin:50%;transform-box:fill-box;transition:opacity .3s ease,transform .3s var(--ease-spring);transform:scale(0)}.landing-icon-animate .landing-ai-dot{opacity:.7;transition-delay:calc(var(--dot-i) * .15s + .7s);animation:landingTypingDots 1.5s ease-in-out calc(var(--dot-i) * .2s + 1.2s) infinite;transform:scale(1)}.landing-ai-sparkle{transform-origin:50%;transform-box:fill-box;transition:opacity .5s}.landing-icon-animate .landing-ai-sparkle{opacity:1;animation:3s ease-in-out 1s infinite landingSparkle}.landing-icon-animate .landing-ai-sparkle-2{animation-delay:1.5s}.landing-step-fill{transition:stroke-dashoffset 2s .5s}.landing-icon-animate .landing-step-fill{stroke-dashoffset:0}.landing-step-dot{transition:fill .4s,stroke .4s;transition-delay:calc(var(--step-i) * .35s + .6s)}.landing-icon-animate .landing-step-dot{fill:var(--landing-accent);stroke:var(--landing-accent)}.landing-step-check{transition:opacity .4s 2.2s}.landing-icon-animate .landing-step-check{opacity:1}.landing-theme-sun{transform-origin:50%;transform-box:fill-box;transition:fill 1s,r 1s}.landing-theme-rays line{transform-origin:50%;transform-box:fill-box;transition:opacity .6s,transform .6s}.landing-theme-moon{transition:opacity 1s ease .5s,cx 1s var(--ease-spring) .5s}.landing-icon-animate .landing-theme-sun{animation:5s ease-in-out infinite landingSunMoonCycle}.landing-icon-animate .landing-theme-rays line{animation:5s ease-in-out infinite landingRaysCycle}.landing-icon-animate .landing-theme-moon{animation:5s ease-in-out infinite landingMoonCycle}.landing-spotlight{padding:5rem 2rem;position:relative;overflow:hidden}.landing-spotlight-inner{grid-template-columns:1fr 1fr;align-items:center;gap:4rem;max-width:72rem;margin:0 auto;display:grid}.landing-spotlight--reverse .landing-spotlight-inner{direction:rtl}.landing-spotlight--reverse .landing-spotlight-inner>*{direction:ltr}.landing-spotlight-visual{justify-content:center;align-items:center;display:flex;position:relative}.landing-spotlight-glow{filter:blur(40px);background:radial-gradient(circle,#c4252533,#0000 70%);border-radius:50%;width:300px;height:300px;animation:4s ease-in-out infinite landingSpotlightGlow;position:absolute}.landing-spotlight-glow--blue{background:radial-gradient(circle,#3b82f633,#0000 70%)}.landing-spotlight-glow--purple{background:radial-gradient(circle,#a855f733,#0000 70%)}.landing-spotlight-svg{z-index:1;filter:drop-shadow(0 8px 30px #0000004d);width:100%;max-width:400px;height:auto;position:relative}.landing-spotlight-text{flex-direction:column;gap:.75rem;display:flex}.landing-spotlight-badge{width:fit-content;color:var(--landing-accent-bright);letter-spacing:.03em;text-transform:uppercase;background:#c4252526;border:1px solid #c425254d;border-radius:2rem;padding:.35rem 1rem;font-family:Figtree,sans-serif;font-size:.8rem;font-weight:600;display:inline-block}.landing-spotlight-badge--blue{color:#60a5fa;background:#3b82f626;border-color:#3b82f64d}.landing-spotlight-badge--purple{color:#c084fc;background:#a855f726;border-color:#a855f74d}.landing-spotlight-text h2{letter-spacing:-.02em;color:var(--landing-text);padding:.05em 0;font-family:Syne,Trebuchet MS,sans-serif;font-size:2.25rem;font-weight:800;line-height:1.3}.landing-spotlight-text p{color:var(--landing-text-muted);font-family:Figtree,sans-serif;font-size:1.05rem;line-height:1.7}.landing-spotlight-features{flex-direction:column;gap:.65rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.landing-spotlight-features li{color:var(--landing-text);align-items:center;gap:.6rem;font-family:Figtree,sans-serif;font-size:.95rem;display:flex}.landing-spot-star{opacity:0;transform-origin:50%;transform-box:fill-box;transform:scale(0)}.is-visible .landing-spot-star{opacity:1;transition:opacity .5s ease,transform .5s var(--ease-spring);transition-delay:calc(var(--si) * .12s + .5s);transform:scale(1)}.landing-spot-bar-fill{transition:width 1s var(--ease-smooth);transition-delay:.8s}.is-visible .landing-spot-bar-fill{width:calc(var(--bar-w) * 1.2px)}.landing-spot-slot{opacity:0;transition:opacity .3s;transition-delay:calc(var(--slot-i) * 80ms + .4s)}.is-visible .landing-spot-slot{opacity:1}.landing-spot-drag{transition:opacity .4s 1.5s}.is-visible .landing-spot-drag{opacity:1;animation:2s ease-in-out 2s infinite landingDragPulse}.landing-spot-msg{opacity:0;transition:opacity .4s ease,transform .4s var(--ease-spring);transition-delay:calc(var(--msg-i) * .3s + .5s);transform-box:fill-box;transform:translateY(8px)}.is-visible .landing-spot-msg{opacity:1;transform:translateY(0)}.landing-spot-tdot{animation:landingTypingDots 1.5s ease-in-out calc(var(--td) * .2s) infinite}.landing-cta{text-align:center;padding:8rem 2rem;position:relative;overflow:hidden}.landing-cta:before{content:"";background:radial-gradient(60% 50%,#c425251a,#0000 70%);position:absolute;top:0;right:0;bottom:0;left:0}.landing-cta-particles{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.landing-particle--cta{bottom:-10%}.landing-cta-content{z-index:2;position:relative}.landing-cta-content h2{letter-spacing:-.02em;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#fff,#ffffffbf);-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;padding:.1em 0;font-family:Syne,Trebuchet MS,sans-serif;font-size:3rem;font-weight:800;line-height:1.3}.landing-cta-content p{color:var(--landing-text-muted);margin-bottom:2.5rem;font-family:Figtree,sans-serif;font-size:1.15rem;line-height:1.6}.landing-footer{text-align:center;border-top:1px solid #ffffff0f;padding:2rem}.landing-footer p{color:var(--landing-text-muted);font-family:Figtree,sans-serif;font-size:.85rem}.landing-reveal{opacity:0;transition:opacity .8s var(--ease-smooth),transform .8s var(--ease-spring);transition-delay:calc(var(--reveal-delay,0) * .12s);transform:translateY(50px)}.landing-reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes landingGradientShift{0%,to{background-position:0 0}25%{background-position:100%}50%{background-position:50% 100%}75%{background-position:0%}}@keyframes landingFloat{0%{opacity:0;transform:translateY(0)translate(0)scale(1)}10%{opacity:calc(.15 + var(--i,0) * .015)}33%{transform:translateY(-35vh)translate(15px)scale(1.1)}66%{transform:translateY(-70vh)translate(-10px)scale(1.15)}90%{opacity:calc(.15 + var(--i,0) * .015)}to{opacity:0;transform:translateY(-105vh)translate(5px)scale(.8)}}@keyframes landingPulseGlow{0%,to{filter:drop-shadow(0 0 20px #fff)drop-shadow(0 0 40px #ffffffe6)drop-shadow(0 0 60px #fff9)drop-shadow(0 0 80px #c4252566)}50%{filter:drop-shadow(0 0 25px #fff)drop-shadow(0 0 50px #fff)drop-shadow(0 0 80px #fffc)drop-shadow(0 0 100px #c4252599)}}@keyframes landingLogoEntrance{0%{opacity:0;transform:scale(.5)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes landingWordReveal{0%{opacity:0;transform:translateY(40px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes landingBtnPulse{0%,to{box-shadow:0 4px 20px #c425254d}50%{box-shadow:0 4px 20px #c425254d,0 0 50px #c4252533,0 0 80px #c425251a}}@keyframes landingBtnSheen{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes landingScrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}@keyframes landingStarPulse{0%,to{filter:drop-shadow(0 0 #0000);transform:scale(1)}50%{filter:drop-shadow(0 0 8px #fbbf2480);transform:scale(1.1)}}@keyframes landingSparkle{0%,to{opacity:.3;transform:scale(.8)rotate(0)}50%{opacity:1;transform:scale(1.3)rotate(180deg)}}@keyframes landingTypingDots{0%,60%,to{opacity:.4;transform:scale(1)}30%{opacity:1;transform:scale(1.4)}}@keyframes landingSpotlightGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes landingSunMoonCycle{0%,40%{fill:#fbbf24}50%,90%{fill:#cbd5e1}to{fill:#fbbf24}}@keyframes landingRaysCycle{0%,40%{opacity:1;transform:scale(1)}50%,90%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes landingMoonCycle{0%,40%{opacity:0;cx:55px}50%,90%{opacity:1;cx:48px}to{opacity:0;cx:55px}}@keyframes landingDragPulse{0%,to{opacity:.4}50%{opacity:.9}}@media(max-width:1024px){.landing-hero-appname{font-size:4rem}.landing-hero-tagline{font-size:2.5rem}.landing-bento{grid-template-columns:repeat(2,1fr)}.landing-bento-card--wide{grid-column:span 2}.landing-spotlight-inner{text-align:center;grid-template-columns:1fr;gap:2.5rem}.landing-spotlight--reverse .landing-spotlight-inner{direction:ltr}.landing-spotlight-visual{order:-1}.landing-spotlight-badge{margin:0 auto}.landing-spotlight-features{align-items:center}.landing-section-title,.landing-cta-content h2{font-size:2.5rem}}@media(max-width:768px){.landing-nav{padding:.75rem 1.25rem}.landing-nav-brand{font-size:1.2rem}.landing-hero-appname{font-size:3rem}.landing-hero-tagline{font-size:2rem}.landing-hero-logo{height:5rem}.landing-hero-subtitle{font-size:1rem}.landing-bento{grid-template-columns:1fr}.landing-bento-card--wide{grid-column:span 1}.landing-bento-card{padding:1.75rem}.landing-section-title{font-size:2rem}.landing-section-subtitle{font-size:1rem}.landing-spotlight{padding:3rem 1.5rem}.landing-spotlight-text h2{font-size:1.75rem}.landing-spotlight-svg{max-width:300px}.landing-cta{padding:5rem 1.5rem}.landing-cta-content h2{font-size:2rem}.landing-particle:nth-child(odd){display:none}.landing-features{padding:4rem 1.25rem}}@media(max-width:480px){.landing-hero-appname{font-size:2.5rem}.landing-hero-tagline{font-size:1.5rem}.landing-word{margin-bottom:.25rem;margin-right:0;display:block}.landing-hero-btn{padding:.85rem 2rem;font-size:1rem}.landing-scroll-indicator{display:none}.landing-nav-cta{padding:.5rem 1rem;font-size:.8rem}}@media(prefers-reduced-motion:reduce){.landing-particle,.landing-hero-logo,.landing-scroll-arrow,.landing-hero-btn:before{animation:none!important}.landing-word,.landing-hero-subtitle,.landing-hero-btn,.landing-scroll-indicator{opacity:1;transform:none;animation:none!important}.landing-hero-bg{animation:none!important}.landing-reveal{opacity:1;transition:none;transform:none}.landing-bento-card{transition-duration:.01ms}.landing-spotlight-glow{animation:none!important}}.course-item[draggable=true]{cursor:grab}.course-item[draggable=true]:active{cursor:grabbing}.course-item.dragging{opacity:.5;background-color:var(--primary-hover);box-shadow:var(--shadow-lg);transform:scale(.95)}.course-slot.drag-over{border-radius:var(--border-radius);background-color:#10b9811a;border:2px dashed #10b981;transition:all .2s}.year-section.expanded .course-slot.drag-over{background-color:#10b98126;border:2px dashed #10b981}.toast-container{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast{color:#fff;border-radius:6px;padding:12px 20px;font-weight:500;animation:.3s ease-out toastSlideIn}.toast-success{background-color:#10b981}.toast-error{background-color:#ef4444}.toast-info{background-color:#3b82f6}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
