There are many academic tutoring companies available for students, and the top companies may vary depending on the location and the specific needs of the student. However, here are some of the top academic tutoring companies that provide online and in-person tutoring services:
Tutor.com - Provides personalized online tutoring in a variety of subjects, including math, science, social studies, and English.
Sylvan Learning - Offers personalized in-person and online tutoring for students in K-12, including academic support in math, reading, writing, and test prep.
Kumon - Provides personalized in-person and online tutoring in math and reading for students in K-12.
Princeton Review - Offers personalized in-person and online tutoring for standardized test preparation, including the SAT, ACT, and GRE.
Huntington Learning Center - Provides personalized in-person and online tutoring for students in K-12, including academic support in reading, writing, math, and study skills.
Varsity Tutors - Offers personalized online tutoring in a variety of subjects, including math, science, social studies, and English, as well as test preparation.
Club Z! Tutoring - Provides personalized in-person and online tutoring for students in K-12, including academic support in math, reading, writing, and test prep.
In summary, there are many academic tutoring companies available for students, and the top companies may vary depending on the location and the specific needs of the student. Students should research and compare tutoring companies to find one that fits their needs and budget.
-content-field="published-on"],.blog-item-wrapper header h1,article header h1){display:none!important}
body.tii-blog-title-live .tii-blog-native-hidden{display:none!important}
:is(html,body).sqs-edit-mode-active #tii-blog-article-title,:is(html,body).sqs-site-styles-active #tii-blog-article-title{display:none!important}
:root{--tii-n0:#04101f;--tii-n1:#0a1e37;--tii-n2:#0e2745;--tii-gold:#ead49f;--tii-blue:#8fb7df}
.tii-detective-blog-hero,.tii-detective-blog-hero *{box-sizing:border-box}
.tii-detective-blog-hero{position:relative;left:50%;width:100vw;max-width:none;margin:0 0 0 -50vw;overflow:hidden;isolation:isolate;contain:layout paint style;background:radial-gradient(circle at 78% 24%,rgba(78,131,188,.27),transparent 31%),radial-gradient(circle at 18% 70%,rgba(213,181,111,.17),transparent 31%),linear-gradient(145deg,var(--tii-n0),var(--tii-n1) 54%,var(--tii-n2))}
@supports(overflow:clip){.tii-detective-blog-hero{overflow:clip}}
.tii-detective-blog-hero::after{content:"";position:absolute;z-index:0;inset:auto 0 0;height:190px;pointer-events:none;background:linear-gradient(to top,rgba(4,16,31,.72),rgba(4,16,31,.32) 46%,transparent)}
.tii-db-body{position:relative;z-index:2;width:min(1320px,calc(100% - 64px));margin:auto}
.tii-db-copy{position:relative;z-index:3;width:68%;padding:36px 18px 30px 24px;display:flex;flex-direction:column;gap:15px;border-bottom:1px solid rgba(255,255,255,.12);contain:layout style}
.tii-db-kicker-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:30px}
.tii-db-chip,.tii-db-status,.tii-db-meta-item{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.20)}
.tii-db-chip,.tii-db-status,.tii-db-pulse-note{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.tii-db-chip,.tii-db-status{padding:8px 12px;border-radius:999px;color:#fff}.tii-db-chip{transform:translateX(-5%)}.tii-db-pulse-note{color:rgba(255,255,255,.76)}
.tii-db-status-dot,.tii-db-pulse-dot{position:relative;width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 7px;background:#fff}
.tii-db-status-dot::after,.tii-db-pulse-dot::after{content:"";position:absolute;inset:-1px;border:1px solid currentColor;border-radius:50%;opacity:0;transform:scale(1);animation:tiiRippleX 2.2s ease-out infinite}
.tii-db-pulse-text--mobile{display:none}
.tii-db-title{margin:0;max-width:23ch;padding-bottom:.12em;display:block;contain:paint;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:clamp(3rem,5.35vw,5rem);font-weight:800;line-height:1.03;letter-spacing:-.055em;text-wrap:balance;color:#fff;background:linear-gradient(135deg,#fff 0%,#fff 9%,var(--tii-gold) 18%,var(--tii-blue) 31%,#fff 43%,#fff 50%,#fff 59%,var(--tii-gold) 68%,var(--tii-blue) 81%,#fff 93%,#fff 100%);background-size:200% 200%;background-position:100% 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:tiiTitleFlow 9.5s steps(128,end) infinite;-webkit-font-smoothing:antialiased}
.tii-db-outline-intro{margin:2px 0 0;max-width:72ch;color:#fff;font:650 1rem/1.55 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.tii-db-outline-columns{width:min(100%,78ch);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:clamp(24px,3vw,46px)}.tii-db-outline{width:min(100%,78ch);margin:0;padding:0 0 0 1.25rem;display:grid;gap:.44rem;color:#fff}.tii-db-outline-columns .tii-db-outline{width:100%}.tii-db-outline li{margin:0;padding-left:.18rem;color:#fff;font:500 .95rem/1.42 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;break-inside:avoid}.tii-db-outline li::marker{color:#fff}.tii-db-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:3px}.tii-db-meta-item{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border-radius:13px;color:rgba(255,255,255,.84);font-size:.8rem;line-height:1.2}.tii-db-meta-item svg{width:14px;height:14px;stroke:currentColor;flex:0 0 14px}
.tii-db-stage{position:absolute;z-index:2;inset:0 0 0 auto;width:34%;overflow:hidden;touch-action:none;padding-left:14px;contain:layout paint style}
@supports(overflow:clip){.tii-db-stage{overflow:clip}}
@media(min-width:781px){.tii-db-stage{--g:max(32px,calc((100vw - 1320px)/2));right:calc(-1*var(--g));width:calc(34% + var(--g))}}
.tii-db-stage .tii-db-status{position:absolute;top:64px;right:14px;z-index:8;max-width:calc(100% - 28px);justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}.tii-db-status--mobile{display:none}
.tii-db-campus-field{position:absolute;z-index:2;inset:90px 10px 64px;contain:layout paint style}
.tii-db-campus-blip{position:absolute;z-index:3;min-width:90px;width:min(136px,24vw);padding:7px 9px 7px 7px;border-radius:15px;border:1px solid rgba(49,69,86,.10);background:rgba(255,255,255,.68);box-shadow:0 14px 26px rgba(49,69,86,.08);display:flex;align-items:center;gap:8px;pointer-events:none;opacity:0;transform:translate3d(0,10px,0) scale(.96);contain:layout paint style;animation:tiiCardScan 32s ease-in-out calc(5.9s + var(--d,0s)) infinite both}
.tii-db-campus-blip svg{width:28px;height:28px;flex:0 0 28px}.tii-db-campus-blip>div{min-width:0;line-height:1}.tii-db-campus-label{display:block;color:#314556;font-size:.62rem;line-height:1;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.tii-db-campus-sub{display:block;margin-top:2px;color:#627888;font-size:.52rem;line-height:calc(1em + 2px);letter-spacing:.12em;text-transform:uppercase}
.tii-db-campus-1{top:3%;left:3%;--d:0s}.tii-db-campus-2{top:5%;left:38%;--d:2s}.tii-db-campus-3{top:4%;right:4%;--d:4s}.tii-db-campus-4{top:21%;left:13%;--d:6s}.tii-db-campus-5{top:19%;right:18%;--d:8s}.tii-db-campus-6{top:35%;left:43%;--d:10s}.tii-db-campus-7{top:40%;left:3%;--d:12s}.tii-db-campus-8{top:42%;right:3%;--d:14s}.tii-db-campus-9{top:58%;left:16%;--d:16s}.tii-db-campus-10{top:57%;right:27%;--d:18s}.tii-db-campus-11{top:70%;left:43%;--d:20s}.tii-db-campus-12{top:73%;right:7%;--d:22s}.tii-db-campus-13{bottom:2%;left:2%;--d:24s}.tii-db-campus-14{bottom:1%;left:27%;--d:26s}.tii-db-campus-15{bottom:3%;right:25%;--d:28s}.tii-db-campus-16{bottom:1%;right:2%;--d:30s}
.tii-db-scan-ring{position:absolute;width:210px;height:210px;border-radius:50%;border:1px dashed rgba(255,255,255,.20);left:48%;top:16%;opacity:.46;animation:tiiFloatRing 10s ease-in-out infinite}.tii-db-scan-ring::before,.tii-db-scan-ring::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.12)}.tii-db-scan-ring::before{inset:18px}.tii-db-scan-ring::after{inset:38px}
.tii-db-magnifier-wrap{position:absolute;inset:0 auto 0 50%;z-index:10000;width:min(1320px,calc(100% - 64px));transform:translateX(-50%);pointer-events:none;overflow:visible;contain:layout style}.tii-db-magnifier-manual-shift,.tii-db-magnifier-path,.tii-db-magnifier-patrol,.tii-db-magnifier-rig{position:absolute;inset:0}.tii-db-magnifier-manual-shift{z-index:10000;transform:translate3d(0,0,0)}.tii-returning .tii-db-magnifier-manual-shift{transition:transform 650ms cubic-bezier(.22,1,.36,1)}
.tii-db-magnifier-path{left:56%;top:calc(5.5% + 50px);width:112px;height:112px;animation:tiiEnter 5.9s cubic-bezier(.22,.72,.24,1) 1 both}.tii-db-magnifier-patrol{animation:tiiPatrol 32s ease-in-out 5.9s infinite}.tii-db-magnifier-rig{z-index:10001;animation:tiiTilt 6.4s ease-in-out infinite;transform-origin:64% 34%}.tii-db-magnifier-shadow{position:absolute;left:28px;top:89px;width:64px;height:17px;border-radius:50%;background:radial-gradient(ellipse,rgba(49,69,86,.18),rgba(49,69,86,0) 72%);animation:tiiShadow 6.4s ease-in-out infinite}.tii-db-magnifier-image{position:absolute;z-index:10003;left:0;top:0;width:104px;height:104px;object-fit:contain;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 7px 12px rgba(49,69,86,.13));transform:translateZ(0)}
.tii-db-magnifier-zoom{position:absolute;z-index:10005;left:42px;top:8px;width:51px;height:51px;border-radius:50%;overflow:hidden;pointer-events:none;border:1px solid rgba(255,255,255,.46);box-shadow:inset 0 0 0 1px rgba(255,255,255,.32),inset 0 0 13px rgba(186,220,241,.16),0 2px 9px rgba(1,9,20,.15);background:radial-gradient(circle at 31% 24%,rgba(255,255,255,.42) 0 7%,rgba(255,255,255,.13) 18%,transparent 42%),linear-gradient(135deg,rgba(224,240,250,.31),rgba(114,154,184,.12) 54%,rgba(255,255,255,.22))}.tii-db-magnifier-zoom::after{content:"";position:absolute;inset:8% 12% 52% 14%;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(255,255,255,0));opacity:.8;transform:rotate(-16deg)}
.tii-db-magnifier-beam{position:absolute;z-index:10002;left:65px;top:2px;width:190px;height:72px;transform-origin:0 50%;clip-path:polygon(0 44%,100% 0,100% 100%,0 56%);background:linear-gradient(90deg,rgba(255,255,255,.58),rgba(191,224,241,.30) 42%,rgba(102,127,146,0));opacity:.48;mix-blend-mode:screen;animation:tiiBeam 4.2s ease-in-out infinite}.tii-db-magnifier-trigger{position:absolute;left:47px;top:1px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(102,127,146,.28)}.tii-db-magnifier-trigger::after{content:"";position:absolute;inset:-1px;border:1px solid rgba(102,127,146,.28);border-radius:50%;opacity:.45;transform:scale(.84);animation:tiiTrigger 4.2s ease-out infinite}
.tii-magnifier-manual :is(.tii-db-magnifier-path,.tii-db-magnifier-patrol,.tii-db-magnifier-rig,.tii-db-magnifier-shadow,.tii-db-magnifier-beam,.tii-db-magnifier-trigger,.tii-db-campus-blip){animation-play-state:paused}.tii-magnifier-manual .tii-db-campus-blip{animation:none}
.tii-hero-offscreen{content-visibility:auto;contain-intrinsic-size:auto 650px}.tii-hero-offscreen :is(.tii-db-title,.tii-db-campus-blip,.tii-db-scan-ring,.tii-db-magnifier-path,.tii-db-magnifier-patrol,.tii-db-magnifier-rig,.tii-db-magnifier-shadow,.tii-db-magnifier-beam){animation-play-state:paused!important}.tii-hero-offscreen .tii-db-status-dot::after,.tii-hero-offscreen .tii-db-pulse-dot::after,.tii-hero-offscreen .tii-db-magnifier-trigger::after{animation-play-state:paused!important}
@keyframes tiiTitleFlow{from{background-position:100% 100%}to{background-position:0 0}}@keyframes tiiRippleX{0%{opacity:.45;transform:scale(.9)}75%,100%{opacity:0;transform:scale(2.4)}}@keyframes tiiCardScan{0%,100%{opacity:0;transform:translate3d(0,10px,0) scale(.96)}3%,10%{opacity:1;transform:translate3d(0,0,0) scale(1)}15%{opacity:0;transform:translate3d(0,-7px,0) scale(1.01)}}@keyframes tiiFloatRing{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(10px,6px,0) scale(1.04)}}
@keyframes tiiPatrol{0%,100%{transform:translate3d(0,0,0)}12%{transform:translate3d(clamp(72px,12vw,180px),2px,0)}25%{transform:translate3d(clamp(145px,23vw,285px),clamp(18px,4vh,42px),0)}38%{transform:translate3d(clamp(95px,16vw,210px),clamp(78px,15vh,155px),0)}51%{transform:translate3d(clamp(8px,2vw,34px),clamp(120px,23vh,225px),0)}64%{transform:translate3d(clamp(125px,20vw,255px),clamp(145px,27vh,255px),0)}77%{transform:translate3d(clamp(185px,29vw,340px),clamp(76px,14vh,145px),0)}89%{transform:translate3d(clamp(58px,9vw,128px),clamp(42px,8vh,88px),0)}}
@keyframes tiiPatrolM{0%,100%{transform:translate3d(0,0,0)}20%{transform:translate3d(clamp(42px,18vw,82px),2px,0)}40%{transform:translate3d(clamp(16px,7vw,38px),34px,0)}60%{transform:translate3d(clamp(48px,20vw,92px),72px,0)}80%{transform:translate3d(4px,56px,0)}}@keyframes tiiTilt{0%,100%{transform:rotate(-7deg) scale(1)}50%{transform:rotate(4deg) scale(1.02)}}@keyframes tiiShadow{0%,100%{transform:scale(1);opacity:.16}50%{transform:scale(.92);opacity:.10}}@keyframes tiiBeam{0%,100%{opacity:.24;transform:rotate(-12deg) scaleX(.91)}50%{opacity:.56;transform:rotate(-9deg) scaleX(1.05)}}@keyframes tiiTrigger{0%{opacity:.46;transform:scale(.84)}75%,100%{opacity:0;transform:scale(1.55)}}
@keyframes tiiEnter{0%{opacity:0;transform:translate3d(clamp(-160px,-11vw,-72px),-230px,0)}14%{opacity:.68;transform:translate3d(clamp(-150px,-10vw,-66px),-174px,0)}36%{opacity:1;transform:translate3d(clamp(-112px,-7vw,-48px),-108px,0)}64%{opacity:1;transform:translate3d(clamp(-58px,-3.5vw,-24px),-48px,0)}84%{opacity:1;transform:translate3d(-8px,-8px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}@keyframes tiiEnterM{0%{opacity:0;transform:translate3d(clamp(-176px,-51vw,-128px),-88px,0)}20%{opacity:.72;transform:translate3d(clamp(-146px,-40vw,-104px),-62px,0)}52%{opacity:1;transform:translate3d(clamp(-82px,-23vw,-58px),-30px,0)}82%{opacity:1;transform:translate3d(-10px,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}
@media(max-width:1080px){.tii-db-copy{width:62%}.tii-db-stage{width:40%}.tii-db-title{max-width:16ch;font-size:clamp(2.8rem,5.7vw,4.45rem)}}
@media(max-width:780px){.tii-detective-blog-hero{padding-top:38px}.tii-db-body{width:min(100%,calc(100% - 20px));display:flex;flex-direction:column}.tii-db-stage{order:1;position:relative;inset:auto;width:100%;height:177px;min-height:177px;padding:0}.tii-db-copy{order:2;width:100%;padding:0 18px 24px;gap:13px}.tii-db-kicker-row{display:none}.tii-db-title{max-width:none;font-size:clamp(2.55rem,11vw,4rem);line-height:1.04;padding-bottom:.14em}.tii-db-outline-intro{font-size:.96rem;line-height:1.5}.tii-db-outline-columns{display:block;width:100%}.tii-db-outline-columns .tii-db-outline+.tii-db-outline{margin-top:.4rem}.tii-db-outline{width:100%;padding-left:1.16rem;gap:.4rem}.tii-db-outline li{font-size:.91rem;line-height:1.4}.tii-db-campus-field{inset:48px 6px 18px;transform:translate3d(0,-15px,0)}.tii-db-stage .tii-db-status--desktop{display:none}.tii-db-stage .tii-db-status--mobile{display:flex;top:15px;left:50%;right:auto;width:max-content;max-width:calc(100% - 24px);padding:0;border:0;background:transparent;transform:translateX(-50%)}.tii-db-stage .tii-db-status--mobile .tii-db-status-dot{color:#d8b85a;background:#d8b85a}.tii-db-campus-blip{min-width:84px;width:min(120px,35vw);padding:7px;border-radius:13px;max-height:72px;animation-duration:34s}.tii-db-campus-blip svg{width:24px;height:24px;flex-basis:24px}.tii-db-campus-label{font-size:.56rem}.tii-db-campus-sub{font-size:.48rem}.tii-db-campus-1{top:2%;left:2%}.tii-db-campus-2{top:4%;left:34%}.tii-db-campus-3{top:3%;right:2%}.tii-db-campus-4{top:19%;left:5%}.tii-db-campus-5{top:18%;right:9%}.tii-db-campus-6{top:34%;left:36%}.tii-db-campus-7{top:39%;left:1%}.tii-db-campus-8{top:40%;right:1%}.tii-db-campus-9{top:57%;left:6%}.tii-db-campus-10{top:56%;right:16%}.tii-db-campus-11{top:69%;left:34%}.tii-db-campus-12{top:71%;right:2%}.tii-db-campus-13{bottom:1%;left:1%}.tii-db-campus-14{bottom:0;left:22%}.tii-db-campus-15{bottom:2%;right:22%}.tii-db-campus-16{bottom:0;right:1%}.tii-db-campus-field>.tii-db-campus-blip:nth-child(even){display:none}.tii-db-magnifier-wrap{inset:38px 10px auto;width:auto;height:177px;transform:none}.tii-db-magnifier-path{left:54%;top:calc(9% + 35px);width:88px;height:88px;animation-name:tiiEnterM;animation-duration:4.35s}.tii-db-magnifier-patrol{animation-name:tiiPatrolM;animation-duration:34s;animation-delay:4.35s}.tii-db-magnifier-image{width:82px;height:82px}.tii-db-magnifier-zoom{left:33px;top:7px;width:40px;height:40px}.tii-db-magnifier-shadow{left:23px;top:70px;width:50px;height:13px}.tii-db-magnifier-beam{left:51px;top:1px;width:126px;height:56px}.tii-db-magnifier-trigger{left:36px;top:0;width:34px;height:34px}}
@media(min-width:781px) and (hover:hover) and (pointer:fine){.tii-detective-blog-hero.tii-magnifier-takeover,.tii-detective-blog-hero.tii-magnifier-takeover *{cursor:none!important}}
@media(prefers-reduced-motion:reduce){.tii-db-title,.tii-db-status-dot::after,.tii-db-pulse-dot::after,.tii-db-campus-blip,.tii-db-scan-ring,.tii-db-magnifier-path,.tii-db-magnifier-patrol,.tii-db-magnifier-rig,.tii-db-magnifier-shadow,.tii-db-magnifier-beam,.tii-db-magnifier-trigger::after{animation:none!important}.tii-db-title{background-position:50% 50%}.tii-db-campus-blip{opacity:1;transform:none}}
-webkit-backdrop-filter: blur(20px) saturate(170%) contrast(.72) brightness(1.12);
backdrop-filter: blur(20px) saturate(170%) contrast(.72) brightness(1.12);
}
#ivy-article-dock .iad-surface::before {
content: ""; position: absolute; inset: 0; border-radius: inherit;
pointer-events: none;
box-shadow: inset 1px 0 0 rgba(255,255,255,.35), inset -1px 0 0 rgba(255,255,255,.18);
}
#ivy-article-dock .iad-link {
position: absolute; bottom: calc(var(--iad-bottom) + env(safe-area-inset-bottom, 0px));
display: inline-flex; align-items: center; justify-content: center; gap: 9px;
min-width: 112px; min-height: 48px; height: 48px; padding: 10px 18px;
border-radius: 999px; font-size: 12px; font-weight: 600;
transition: transform .22s ease, box-shadow .22s ease, border-color .18s ease;
}
#ivy-article-dock .iad-prev { left: max(var(--iad-edge), env(safe-area-inset-left, 0px)); }
#ivy-article-dock .iad-next { right: max(var(--iad-edge), env(safe-area-inset-right, 0px)); }
#ivy-article-dock svg { width: 19px; height: 19px; flex: 0 0 auto; display: block; }
#ivy-article-dock .iad-preview {
position: absolute; bottom: calc(100% + 11px); width: 260px;
padding: 14px 16px; border-radius: 20px;
/* More frosting for a multi-line headline than for the compact controls. */
--iad-glass: rgba(245,249,255,.80);
opacity: 0; visibility: hidden; pointer-events: none;
transform: translateY(5px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
#ivy-article-dock .iad-prev .iad-preview { left: 0; }
#ivy-article-dock .iad-next .iad-preview { right: 0; }
#ivy-article-dock .iad-link:hover .iad-preview,
#ivy-article-dock .iad-link:focus-visible .iad-preview {
opacity: 1; visibility: visible; transform: none;
}
#ivy-article-dock .iad-eyebrow { display: block; color: var(--iad-gold); font-size: 10px; letter-spacing: .06em; margin-bottom: 5px; }
#ivy-article-dock .iad-title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; font-weight: 550; line-height: 1.4; overflow-wrap: anywhere; }
#ivy-article-dock .iad-center {
position: absolute; bottom: calc(var(--iad-bottom) + env(safe-area-inset-bottom, 0px) + var(--iad-keyboard));
left: 50%; width: min(438px, calc(100% - 316px)); transform: translateX(-50%);
pointer-events: none;
}
#ivy-article-dock .iad-form { position: relative; height: 48px; margin: 0; padding: 0; border: 0; }
#ivy-article-dock .iad-field {
position: relative; display: flex; align-items: center; gap: 0; min-width: 0; height: 48px;
border: 1px solid rgba(255,255,255,.60); border-radius: 999px;
background: rgba(255,255,255,.34);
box-shadow: inset 0 1px 3px rgba(37,57,76,.05), 0 1px 0 rgba(255,255,255,.20);
transition: background-color .18s ease, border-color .18s ease;
}
#ivy-article-dock .iad-field:focus-within {
background: rgba(255,255,255,.56); border-color: rgba(122,95,55,.55);
}
#ivy-article-dock .iad-input {
display: block; flex: 1 1 0%; min-width: 0; width: 0; height: 46px;
padding: 8px 13px; margin: 0; border: 0; border-radius: 999px;
background: transparent; color: var(--iad-ink) !important; caret-color: var(--iad-ink);
font-size: 16px; line-height: 22px; box-shadow: none; outline-offset: 2px;
appearance: none; -webkit-appearance: none;
}
#ivy-article-dock .iad-input::placeholder { color: var(--iad-muted); opacity: 1; font-size: 12px; }
#ivy-article-dock .iad-submit {
display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px;
padding: 0; margin: 0 2px 0 0; border: 1px solid rgba(255,255,255,.61); border-radius: 999px;
background: rgba(255,255,255,.40); box-shadow: 0 2px 5px rgba(23,42,62,.07), inset 0 1px 0 rgba(255,255,255,.72);
transition: background-color .18s ease, transform .18s ease;
}
#ivy-article-dock .iad-submit svg { width: 17px; height: 17px; }
#ivy-article-dock .iad-submit:hover { background: rgba(255,255,255,.75); }
#ivy-article-dock .iad-submit:disabled { cursor: progress; opacity: .65; }
#ivy-article-dock .iad-status { color: var(--iad-ink); font-size: 12px; line-height: 1.4; }
#ivy-article-dock a:focus-visible, #ivy-article-dock button:focus-visible, #ivy-article-dock input:focus-visible {
outline: 2px solid var(--iad-gold) !important; outline-offset: 3px;
}
#ivy-article-dock[data-near-end="true"] .iad-next { border-color: rgba(135,105,60,.66); }
#ivy-article-dock .iad-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (hover: hover) and (pointer: fine) {
#ivy-article-dock .iad-link:hover {
transform: translateY(-3px); border-color: rgba(255,255,255,.98);
box-shadow: 0 21px 45px -12px rgba(19,36,53,.34), 0 7px 16px -8px rgba(19,36,53,.25), inset 0 1px 0 #fff, inset 0 -1px 0 rgba(255,255,255,.50);
}
#ivy-article-dock .iad-link:active { transform: translateY(-1px); }
#ivy-article-dock .iad-submit:active { transform: scale(.96); }
}
@media (max-width: 720px) {
#ivy-article-dock { --iad-edge: 8px; --iad-bottom: 12px; }
#ivy-article-dock .iad-link { min-width: 44px; width: 44px; min-height: 44px; height: 44px; padding: 10px; border-radius: 50%; }
#ivy-article-dock .iad-direction { display: none; }
#ivy-article-dock .iad-center { width: calc(100% - 120px); }
#ivy-article-dock .iad-form { height: 44px; }
#ivy-article-dock .iad-field { height: 44px; }
#ivy-article-dock .iad-input { height: 42px; padding: 9px; }
#ivy-article-dock .iad-input::placeholder { font-size: 11px; }
#ivy-article-dock .iad-submit { flex-basis: 36px; width: 36px; height: 38px; }
#ivy-article-dock .iad-preview { width: min(246px, calc(100vw - 30px)); }
#ivy-article-dock[data-search-focus="true"] .iad-center {
width: calc(100% - max(18px, env(safe-area-inset-left, 0px)) - max(18px, env(safe-area-inset-right, 0px)));
}
#ivy-article-dock[data-search-focus="true"] .iad-link { display: none; }
}
/* Keep comfortable field sizes on touch-first devices, including larger tablets. */
@media (pointer: coarse) and (min-width: 721px) {
#ivy-article-dock .iad-form, #ivy-article-dock .iad-field { height: 48px; }
#ivy-article-dock .iad-input { height: 46px; }
#ivy-article-dock .iad-submit { height: 40px; flex-basis: 40px; width: 40px; }
}
@media (hover: none) { #ivy-article-dock .iad-preview { display: none; } }
@media (prefers-reduced-motion: reduce) {
#ivy-article-dock * { transition: none !important; animation: none !important; }
#ivy-article-dock .iad-link:hover, #ivy-article-dock .iad-submit:active { transform: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
#ivy-article-dock .iad-surface { background: #eef3f8; }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
#ivy-article-dock .iad-surface { background: #eef3f8; border-color: #8193a5; -webkit-backdrop-filter: none; backdrop-filter: none; }
#ivy-article-dock .iad-field { background: #fff; border-color: #8193a5; }
}
@media (forced-colors: active) {
#ivy-article-dock .iad-surface, #ivy-article-dock .iad-field, #ivy-article-dock .iad-submit { background: Canvas; border: 1px solid ButtonText; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
#ivy-article-dock a, #ivy-article-dock button, #ivy-article-dock .iad-input { color: CanvasText !important; text-shadow: none; }
}
@media print { #ivy-article-dock { display: none !important; } }
/* Shown only on the blog index when the search-handoff fallback is needed. */
#ivy-blog-search-handoff { margin: 20px auto; padding: 18px 22px; max-width: 820px; border: 1px solid #b8c4d0; border-radius: 16px; color: #172b40; background: #f3f6f9; font: 16px/1.5 system-ui,sans-serif; }
#ivy-blog-search-handoff p { margin: 0; }
#ivy-blog-search-handoff a { color: #173e65; text-decoration: underline; }
linear-gradient(150deg, rgba(255,255,255,.24), rgba(255,255,255,.05) 48%, rgba(222,235,251,.12)),
var(--iad-glass);
box-shadow: var(--iad-shadow); pointer-events: auto;
-webkit-backdrop-filter: blur(20px) saturate(170%) contrast(.72) brightness(1.12);
backdrop-filter: blur(20px) saturate(170%) contrast(.72) brightness(1.12);
}
#ivy-article-dock .iad-surface::before {
content: ""; position: absolute; inset: 0; border-radius: inherit;
pointer-events: none;
box-shadow: inset 1px 0 0 rgba(255,255,255,.35), inset -1px 0 0 rgba(255,255,255,.18);
}
#ivy-article-dock .iad-link {
position: absolute; bottom: calc(var(--iad-bottom) + env(safe-area-inset-bottom, 0px));
display: inline-flex; align-items: center; justify-content: center; gap: 9px;
min-width: 112px; min-height: 48px; height: 48px; padding: 10px 18px;
border-radius: 999px; font-size: 12px; font-weight: 600;
transition: transform .22s ease, box-shadow .22s ease, border-color .18s ease;
}
#ivy-article-dock .iad-prev { left: max(var(--iad-edge), env(safe-area-inset-left, 0px)); }
#ivy-article-dock .iad-next { right: max(var(--iad-edge), env(safe-area-inset-right, 0px)); }
#ivy-article-dock svg { width: 19px; height: 19px; flex: 0 0 auto; display: block; }
#ivy-article-dock .iad-preview {
position: absolute; bottom: calc(100% + 11px); width: 260px;
padding: 14px 16px; border-radius: 20px;
/* More frosting for a multi-line headline than for the compact controls. */
--iad-glass: rgba(245,249,255,.80);
opacity: 0; visibility: hidden; pointer-events: none;
transform: translateY(5px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
#ivy-article-dock .iad-prev .iad-preview { left: 0; }
#ivy-article-dock .iad-next .iad-preview { right: 0; }
#ivy-article-dock .iad-link:hover .iad-preview,
#ivy-article-dock .iad-link:focus-visible .iad-preview {
opacity: 1; visibility: visible; transform: none;
}
#ivy-article-dock .iad-eyebrow { display: block; color: var(--iad-gold); font-size: 10px; letter-spacing: .06em; margin-bottom: 5px; }
#ivy-article-dock .iad-title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; font-weight: 550; line-height: 1.4; overflow-wrap: anywhere; }
#ivy-article-dock .iad-center {
position: absolute; bottom: calc(var(--iad-bottom) + env(safe-area-inset-bottom, 0px) + var(--iad-keyboard));
left: 50%; width: min(438px, calc(100% - 316px)); transform: translateX(-50%);
pointer-events: none;
}
#ivy-article-dock .iad-form { position: relative; height: 48px; margin: 0; padding: 0; border: 0; }
#ivy-article-dock .iad-field {
position: relative; display: flex; align-items: center; gap: 0; min-width: 0; height: 48px;
border: 1px solid rgba(255,255,255,.60); border-radius: 999px;
background: rgba(255,255,255,.34);
box-shadow: inset 0 1px 3px rgba(37,57,76,.05), 0 1px 0 rgba(255,255,255,.20);
transition: background-color .18s ease, border-color .18s ease;
}
#ivy-article-dock .iad-field:focus-within {
background: rgba(255,255,255,.56); border-color: rgba(122,95,55,.55);
}
#ivy-article-dock .iad-input {
display: block; flex: 1 1 0%; min-width: 0; width: 0; height: 46px;
padding: 8px 13px; margin: 0; border: 0; border-radius: 999px;
background: transparent; color: var(--iad-ink) !important; caret-color: var(--iad-ink);
font-size: 16px; line-height: 22px; box-shadow: none; outline-offset: 2px;
appearance: none; -webkit-appearance: none;
}
#ivy-article-dock .iad-input::placeholder { color: var(--iad-muted); opacity: 1; font-size: 12px; }
#ivy-article-dock .iad-submit {
display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px;
padding: 0; margin: 0 2px 0 0; border: 1px solid rgba(255,255,255,.61); border-radius: 999px;
background: rgba(255,255,255,.40); box-shadow: 0 2px 5px rgba(23,42,62,.07), inset 0 1px 0 rgba(255,255,255,.72);
transition: background-color .18s ease, transform .18s ease;
}
#ivy-article-dock .iad-submit svg { width: 17px; height: 17px; }
#ivy-article-dock .iad-submit:hover { background: rgba(255,255,255,.75); }
#ivy-article-dock .iad-submit:disabled { cursor: progress; opacity: .65; }
#ivy-article-dock .iad-status { color: var(--iad-ink); font-size: 12px; line-height: 1.4; }
#ivy-article-dock a:focus-visible, #ivy-article-dock button:focus-visible, #ivy-article-dock input:focus-visible {
outline: 2px solid var(--iad-gold) !important; outline-offset: 3px;
}
#ivy-article-dock[data-near-end="true"] .iad-next { border-color: rgba(135,105,60,.66); }
#ivy-article-dock .iad-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (hover: hover) and (pointer: fine) {
#ivy-article-dock .iad-link:hover {
transform: translateY(-3px); border-color: rgba(255,255,255,.98);
box-shadow: 0 21px 45px -12px rgba(19,36,53,.34), 0 7px 16px -8px rgba(19,36,53,.25), inset 0 1px 0 #fff, inset 0 -1px 0 rgba(255,255,255,.50);
}
#ivy-article-dock .iad-link:active { transform: translateY(-1px); }
#ivy-article-dock .iad-submit:active { transform: scale(.96); }
}
@media (max-width: 720px) {
#ivy-article-dock { --iad-edge: 8px; --iad-bottom: 12px; }
#ivy-article-dock .iad-link { min-width: 44px; width: 44px; min-height: 44px; height: 44px; padding: 10px; border-radius: 50%; }
#ivy-article-dock .iad-direction { display: none; }
#ivy-article-dock .iad-center { width: calc(100% - 120px); }
#ivy-article-dock .iad-form { height: 44px; }
#ivy-article-dock .iad-field { height: 44px; }
#ivy-article-dock .iad-input { height: 42px; padding: 9px; }
#ivy-article-dock .iad-input::placeholder { font-size: 11px; }
#ivy-article-dock .iad-submit { flex-basis: 36px; width: 36px; height: 38px; }
#ivy-article-dock .iad-preview { width: min(246px, calc(100vw - 30px)); }
#ivy-article-dock[data-search-focus="true"] .iad-center {
width: calc(100% - max(18px, env(safe-area-inset-left, 0px)) - max(18px, env(safe-area-inset-right, 0px)));
}
#ivy-article-dock[data-search-focus="true"] .iad-link { display: none; }
}
/* Keep comfortable field sizes on touch-first devices, including larger tablets. */
@media (pointer: coarse) and (min-width: 721px) {
#ivy-article-dock .iad-form, #ivy-article-dock .iad-field { height: 48px; }
#ivy-article-dock .iad-input { height: 46px; }
#ivy-article-dock .iad-submit { height: 40px; flex-basis: 40px; width: 40px; }
}
@media (hover: none) { #ivy-article-dock .iad-preview { display: none; } }
@media (prefers-reduced-motion: reduce) {
#ivy-article-dock * { transition: none !important; animation: none !important; }
#ivy-article-dock .iad-link:hover, #ivy-article-dock .iad-submit:active { transform: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
#ivy-article-dock .iad-surface { background: #eef3f8; }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
#ivy-article-dock .iad-surface { background: #eef3f8; border-color: #8193a5; -webkit-backdrop-filter: none; backdrop-filter: none; }
#ivy-article-dock .iad-field { background: #fff; border-color: #8193a5; }
}
@media (forced-colors: active) {
#ivy-article-dock .iad-surface, #ivy-article-dock .iad-field, #ivy-article-dock .iad-submit { background: Canvas; border: 1px solid ButtonText; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
#ivy-article-dock a, #ivy-article-dock button, #ivy-article-dock .iad-input { color: CanvasText !important; text-shadow: none; }
}
@media print { #ivy-article-dock { display: none !important; } }
/* Shown only on the blog index when the search-handoff fallback is needed. */
#ivy-blog-search-handoff { margin: 20px auto; padding: 18px 22px; max-width: 820px; border: 1px solid #b8c4d0; border-radius: 16px; color: #172b40; background: #f3f6f9; font: 16px/1.5 system-ui,sans-serif; }
#ivy-blog-search-handoff p { margin: 0; }
#ivy-blog-search-handoff a { color: #173e65; text-decoration: underline; }
sconnect(); bodyObserver?.disconnect(); delete window[GLOBAL];
}
window[GLOBAL] = { version: '3.0.0', refresh, destroy };
for (const name of ['mercury:load', 'sqs:page-view', 'sqs:after-page-load']) document.addEventListener(name, refresh, { signal: appAbort.signal });
for (const name of ['popstate', 'pageshow', 'load']) window.addEventListener(name, refresh, { signal: appAbort.signal });
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start, { once: true, signal: appAbort.signal }); else start();
})();