/* GENERATED - do not hand-edit. Subset of home-page.css containing only the
   rules that match an element on the default (v2) home page, hidden ones
   included. home-page.css is 342 KB of mostly legacy v1-hero styling; this
   is the 3% the v2 page actually uses.
   Regenerate after editing home-page.css:
     node scripts/build-home-page-v2-css.mjs
   ?v=1 still loads the full home-page.css, which is what it styles. */
/* No backdrop-filter on .modal itself. .modal is Bootstrap's full-viewport container that HOLDS the dialog, not the scrim - blurring it blurred the whole page a second time on top of .modal-backdrop's own blur (8px + 10px), which is why an open modal hid the page instead of layering over it. The scrim is .modal-backdrop; that is the only element that should filter anything. */.modal.fade .modal-dialog{transform:translateY(-24px);transition:transform .28s cubic-bezier(.34,1.56,.64,1),opacity .28s ease;opacity:0}/* The entrance animation used to scale from .8 to 1. On mobile Chrome the dialog is rasterized once at the start of a composited transform animation and upscaled by the compositor, so text inside the modal stayed visibly soft after the animation finished. Translate-only keeps the raster at 1:1. */.modal-content,.modal-header{border:0!important;position:relative;overflow:hidden}.modal-content{border-radius:20px!important;box-shadow:0 25px 50px -12px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.1)!important}.modal-content::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#007bff,#6610f2,#6f42c1,#e83e8c);z-index:1}.modal-body{padding:0!important;position:relative}/* Scrim: dim enough to push the page back, light enough that the page is still readable behind the dialog. Was rgba(0,0,0,.8) + a 10px backdrop blur held at opacity:1, which read as a solid wall - on a phone, where the dialog does not fill the viewport, that meant an open modal blanked the whole page. No backdrop-filter at all now: a full-viewport blur is the single most expensive thing the compositor can be asked for on mobile, and at any radius strong enough to be visible it takes the page with it. Flat alpha does the job. */.modal-backdrop{background:rgba(2,6,23,.5)}@media (max-width:768px){.modal-dialog{margin:1rem}.modal-content{border-radius:15px!important}}.brand-item,.brands-grid{display:flex;align-items:center;justify-content:center}.brand-item{flex-shrink:0;height:60px;padding:.5rem 1rem}.brand-item img{max-width:100%;max-height:35px;width:auto;height:auto;object-fit:contain;opacity:1;transition:transform .3s ease}.brand-item:hover img{transform:translateY(-2px)}.brand-item img[alt*=Illinois],.brand-item img[alt*=UIUC],.brand-item img[src*=uni-logo-5]{max-height:25px}.brand-item:last-child{margin-right:2rem}@media (max-width:768px){.brand-item{height:50px}.brand-item img{max-height:28px}.brand-item img[alt*=Illinois],.brand-item img[alt*=UIUC],.brand-item img[src*=uni-logo-5]{max-height:20px}.brand-item:last-child{margin-right:1rem}}.bar{background:#f3f4f6;border-radius:999px;padding:.3rem;position:relative;overflow:hidden}.cq-video-modal .modal-dialog{transition:transform .25s ease,opacity .25s ease;transform:translateY(12px) scale(.985)}.cq-video-modal .modal-content{background:#fff;border:1px solid #e5e7eb;border-radius:18px;overflow:hidden;box-shadow:0 40px 120px rgba(15,23,42,.35),0 12px 36px rgba(15,23,42,.16)}.cq-video-modal .modal-body{padding:0}.cq-video-modal .responsive-video-wrapper{position:relative;width:100%;padding-top:56.25%;background:#0b1220;border-radius:10px;overflow:hidden}.cq-video-modal .responsive-video-wrapper iframe,.cq-video-modal .responsive-video-wrapper video{position:absolute;inset:0;width:100%;height:100%;border:0}.cq-video-modal .responsive-video-wrapper video{display:block;object-fit:contain;background:#0b1220}.cq-video-modal .video-modal-close,.cq-video-modal__header{background:#fff;display:flex;align-items:center;flex-shrink:0}.cq-video-modal__header{justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid #e8edf4;background:linear-gradient(180deg,#fff 0,#fbfcfe 100%)}.cq-video-modal__header-left{display:flex;align-items:center;gap:13px;min-width:0}.cq-video-modal__header-icon{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#2563eb 0,#0ea5e9 100%);display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 14px -6px rgba(37,99,235,.55),inset 0 1px 0 rgba(255,255,255,.25);flex:0 0 auto}.cq-video-modal__header-icon svg{margin-left:2px}.cq-video-modal__header-titles{display:flex;flex-direction:column;gap:3px;min-width:0}.cq-video-modal__eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#2563eb;line-height:1}.cq-video-modal__title{font-size:17px;font-weight:700;color:#0f172a;line-height:1.25;margin:0;letter-spacing:-.015em}.cq-video-modal .video-modal-close{position:static;width:36px;height:36px;border:1px solid #e5e7eb;border-radius:8px;color:#475569;justify-content:center;cursor:pointer;padding:0;transition:background .18s ease,color .18s ease,border-color .18s ease}.cq-video-modal .video-modal-close:focus-visible,.cq-video-modal .video-modal-close:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a;transform:none;outline:0}.cq-video-modal--split .modal-dialog{max-width:min(1080px,94vw);width:94vw;margin:0 auto;display:flex;align-items:center;min-height:100vh;min-height:100svh;padding:24px 0;pointer-events:none}.cq-video-modal--split .modal-content{max-height:min(680px,calc(100vh - 48px));display:flex;flex-direction:column;width:100%;pointer-events:auto}.cq-video-modal--split .modal-body{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}.cq-video-modal__grid{display:grid;grid-template-columns:minmax(0,1fr) 316px;grid-template-rows:minmax(0,1fr);gap:0;flex:1 1 auto;min-height:0}.cq-video-modal__video{overflow-y:auto}.cq-video-modal__side{overflow:hidden}.cq-video-modal__side,.cq-video-modal__video{display:flex;flex-direction:column;min-width:0}.cq-video-modal__video{background:linear-gradient(180deg,#f8fafc 0,#eef2f7 100%);padding:20px 24px;justify-content:flex-start;gap:14px}.cq-video-modal__video .responsive-video-wrapper{width:100%;max-width:100%;align-self:center;box-shadow:0 16px 40px rgba(15,23,42,.18);border:1px solid #e2e8f0;border-radius:12px}.cq-video-modal__side{background:linear-gradient(180deg,#fbfcff 0,#f6f8fc 100%);border-left:1px solid #e8edf4;padding:20px 20px 18px;color:#0f172a}.cq-video-modal__side-title{margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#2563eb}.cq-video-modal__side-sub{margin:0 0 16px;font-size:13px;line-height:1.5;color:#64748b}.cq-video-modal__list{list-style:none;margin:0 0 14px;padding:0 2px 2px 0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.cq-video-modal__link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:11px;background:#fff;border:1px solid #e8edf4;box-shadow:0 1px 2px rgba(15,23,42,.05);color:#0f172a;text-decoration:none;font-size:13px;line-height:1.35;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.cq-video-modal__link:focus-visible,.cq-video-modal__link:hover{background:#eff6ff;border-color:#2563eb;color:#0f172a;text-decoration:none;transform:translateX(2px);box-shadow:0 4px 12px rgba(37,99,235,.12)}.cq-video-modal__link svg{color:#2563eb;opacity:.55;flex-shrink:0}.cq-video-modal__link:focus-visible svg,.cq-video-modal__link:hover svg{opacity:1}.cq-video-modal__link-text{display:flex;flex-direction:column;gap:2px;min-width:0}.cq-video-modal__link-title{font-weight:600;color:#0f172a;font-size:13.5px;line-height:1.3}.cq-video-modal__link-sub{font-size:11.5px;color:#64748b;line-height:1.3}.cq-video-modal__all-link{margin-top:auto;padding-top:14px;border-top:1px solid #e8edf4;display:inline-flex;align-items:center;gap:6px;color:#2563eb;font-size:12.5px;font-weight:600;text-decoration:none;align-self:flex-start}.cq-video-modal__all-link:focus-visible,.cq-video-modal__all-link:hover{color:#1d4ed8;text-decoration:none}.cq-video-modal__buy{margin-top:14px;padding-top:14px;border-top:1px solid #f1f5f9;display:flex;flex-direction:column;align-items:stretch;gap:8px}.cq-video-modal__buy-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:10px;background:#2563eb;color:#fff;font-size:14px;font-weight:700;letter-spacing:.01em;text-decoration:none;box-shadow:0 6px 16px rgba(37,99,235,.28);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.cq-video-modal__buy-btn:focus-visible,.cq-video-modal__buy-btn:hover{color:#fff;text-decoration:none;background:#1d4ed8;transform:translateY(-1px);box-shadow:0 10px 22px rgba(29,78,216,.32)}.cq-video-modal__buy-price{text-align:center;font-size:12px;color:#64748b;letter-spacing:.02em}.cq-video-modal__buy-price strong{color:#0f172a;font-weight:700}@media (max-width:991px){.cq-video-modal--split .modal-dialog{width:100vw;max-width:100vw;margin:0;padding:0;min-height:100vh;min-height:100svh}.cq-video-modal--split .modal-content{max-height:none;min-height:100vh;min-height:100svh;border-radius:0;border:0}.cq-video-modal--split .modal-body{display:block;overflow:visible}.cq-video-modal__grid{grid-template-columns:1fr;grid-template-rows:none}.cq-video-modal__list{flex:none;overflow-y:visible}.cq-video-modal__video{padding:16px}.cq-video-modal__video .responsive-video-wrapper{max-width:100%}.cq-video-modal__side{border-left:0;border-top:1px solid #e5e7eb;padding:18px 16px}}@media (max-width:768px){@media (max-width:768px){.enhanced-features-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}}@media (max-width:576px){.enhanced-features-grid{grid-template-columns:1fr;gap:.5rem}.enhanced-feature-card{padding:.75rem}.video-section .video-thumbnail,.video-thumbnail{height:250px}.stats-grid{gap:.5rem;flex-direction:column;align-items:center}.stat-item{padding:.4rem .6rem;min-width:120px;justify-content:center}.stat-icon{width:22px;height:22px;font-size:.65rem}.stat-number{font-size:.85rem}.stat-label{font-size:.6rem}.video-section .video-info h5{font-size:1rem}.video-section .video-info p{font-size:.75rem}.enhanced-service-card{padding:1.25rem}.service-icon-wrapper{width:40px;height:40px;font-size:1rem}.service-title{font-size:1.1rem}.service-description{font-size:.85rem}.service-cta-btn{padding:.8rem 1.2rem;font-size:.9rem}}}.brand-logo,.comparison-cell{display:flex;align-items:center;justify-content:center}.brand-logo{gap:.6rem;font-size:1.15rem;font-weight:700;color:#fff}.brand-name{font-weight:600;font-size:1rem;color:#fff}